Обсуждение: string escaping in tutorial/syscat.source

Поиск
Список
Период
Сортировка

string escaping in tutorial/syscat.source

От
Josh Kupershmidt
Дата:
Hi all,
It seems the queries in ./src/tutorial/syscat.source use string
escaping with the assumption that standard_conforming_strings is off,
and thus give wrong results with modern versions. A simple fix is
attached.
Josh

Вложения

string escaping in tutorial/syscat.source

От
Jeff Janes
Дата:
On Sun, Oct 14, 2012 at 8:53 PM, Josh Kupershmidt <<a href="javascript:;">schmiddy@gmail.com</a>> wrote:<br />
>Hi all,<br /> > It seems the queries in ./src/tutorial/syscat.source use string<br /> > escaping with the
assumptionthat standard_conforming_strings is off,<br /> > and thus give wrong results with modern versions. A
simplefix is<br /> > attached.<br /><br /> Hi Josh,<br /><br /> Do you propose back-patching this?  You could argue
thatthis is a bug in 9.1 and 9.2.   Before that, they generate deprecation warnings, but do not give the wrong
answer.<br/><br /> If it is only to be applied to HEAD, or only to 9.1, 9.2, and HEAD, then this part seems to be
unnecessaryand I think should be removed (setting a value to its default is more likely to cause confusion than remove
confusion):<br/><br /> SET standard_conforming_strings TO on;<br /><br /> and the corresponding reset as well.<br /><br
/>Other than that, it does what it says (fix a broken example), does it cleanly, we want this, and I have no other
concerns.<br/><br /> I guess the src/tutorial directory could participate in regression tests, in which case this
problemwould have been detected when introduced, but I don't think I can demand that you invent regression tests for a
featureyou are just fixing rather than creating.<br /><br /> Thanks for the patch,<br /><br /> Jeff<br /> 

Re: string escaping in tutorial/syscat.source

От
Josh Kupershmidt
Дата:
On Tue, Jan 15, 2013 at 6:35 PM, Jeff Janes <jeff.janes@gmail.com> wrote:

> Do you propose back-patching this?  You could argue that this is a bug in
> 9.1 and 9.2.   Before that, they generate deprecation warnings, but do not
> give the wrong answer.

I think that backpatching to 9.1 would be reasonable, though I won't
complain if the fix is only applied to HEAD.

> If it is only to be applied to HEAD, or only to 9.1, 9.2, and HEAD, then
> this part seems to be unnecessary and I think should be removed (setting a
> value to its default is more likely to cause confusion than remove
> confusion):
>
> SET standard_conforming_strings TO on;
>
> and the corresponding reset as well.

Well, it may be unnecessary for people who use the modern default
standard_conforming_strings. But some people have kept
standard_conforming_strings=off in recent versions because they have
old code which depends on this. And besides, it seems prudent to make
the dependency explicit, rather than just hoping the user has the
correct setting, and silently giving wrong results if not. Plus being
able to work with old server versions.

> Other than that, it does what it says (fix a broken example), does it
> cleanly, we want this, and I have no other concerns.
>
> I guess the src/tutorial directory could participate in regression tests, in
> which case this problem would have been detected when introduced, but I
> don't think I can demand that you invent regression tests for a feature you
> are just fixing rather than creating.

Yeah, I don't think tying into the regression tests is warranted here.

Josh



Re: string escaping in tutorial/syscat.source

От
Jeff Janes
Дата:
On Tuesday, January 15, 2013, Josh Kupershmidt wrote:
On Tue, Jan 15, 2013 at 6:35 PM, Jeff Janes <jeff.janes@gmail.com> wrote:

> Do you propose back-patching this?  You could argue that this is a bug in
> 9.1 and 9.2.   Before that, they generate deprecation warnings, but do not
> give the wrong answer.

I think that backpatching to 9.1 would be reasonable, though I won't
complain if the fix is only applied to HEAD.

> If it is only to be applied to HEAD, or only to 9.1, 9.2, and HEAD, then
> this part seems to be unnecessary and I think should be removed (setting a
> value to its default is more likely to cause confusion than remove
> confusion):
>
> SET standard_conforming_strings TO on;
>
> and the corresponding reset as well.

Well, it may be unnecessary for people who use the modern default
standard_conforming_strings. But some people have kept
standard_conforming_strings=off in recent versions because they have
old code which depends on this.

OK, I didn't anticipate them doing that in their default (i.e. postgresql.conf) but of course they might do that.

I've marked it ready for committer.

Thanks,

Jeff

Re: string escaping in tutorial/syscat.source

От
Tom Lane
Дата:
Josh Kupershmidt <schmiddy@gmail.com> writes:
> It seems the queries in ./src/tutorial/syscat.source use string
> escaping with the assumption that standard_conforming_strings is off,
> and thus give wrong results with modern versions. A simple fix is
> attached.

I tweaked the comments a little bit and committed this as far back
as 9.1.  Thanks!
        regards, tom lane