standard_conforming_strings

Started by Robert Haasalmost 16 years ago14 messageshackers
Jump to latest
#1Robert Haas
robertmhaas@gmail.com

On Fri, Jan 29, 2010 at 10:02 PM, Josh Berkus <josh@agliodbs.com> wrote:

An actual plan here might look like "let's flip it before 9.1alpha1
so we can get some alpha testing cycles on it" ...

"Hey, let's flip it in 9.1 CF 1, so that we can have some alpha testing
cycles on it."

Should we do this? Patch attached.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

Attachments:

standard_conforming_strings_on.patchtext/x-patch; charset=US-ASCII; name=standard_conforming_strings_on.patchDownload+14-18
#2Bruce Momjian
bruce@momjian.us
In reply to: Robert Haas (#1)
Re: standard_conforming_strings

Robert Haas wrote:

On Fri, Jan 29, 2010 at 10:02 PM, Josh Berkus <josh@agliodbs.com> wrote:

An actual plan here might look like "let's flip it before 9.1alpha1
so we can get some alpha testing cycles on it" ...

"Hey, let's flip it in 9.1 CF 1, so that we can have some alpha testing
cycles on it."

Should we do this? Patch attached.

+1

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ None of us is going to be here forever. +

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#1)
Re: standard_conforming_strings

Robert Haas <robertmhaas@gmail.com> writes:

On Fri, Jan 29, 2010 at 10:02 PM, Josh Berkus <josh@agliodbs.com> wrote:
An actual plan here might look like "let's flip it before 9.1alpha1
so we can get some alpha testing cycles on it" ...

"Hey, let's flip it in 9.1 CF 1, so that we can have some alpha testing
cycles on it."

Should we do this? Patch attached.

I'm still scared to death of the security implications, but if we don't
do it now, when will be a better time? Might as well try it and see
what breaks. Note there had better be a large compatibility warning in
the alpha release notes, and we had better pester driver authors to test
with 9.1alpha1 as soon as it's out.

regards, tom lane

#4Richard Huxton
dev@archonet.com
In reply to: Robert Haas (#1)
Re: standard_conforming_strings

On 14/07/10 15:48, Robert Haas wrote:

On Fri, Jan 29, 2010 at 10:02 PM, Josh Berkus<josh@agliodbs.com> wrote:

An actual plan here might look like "let's flip it before 9.1alpha1
so we can get some alpha testing cycles on it" ...

"Hey, let's flip it in 9.1 CF 1, so that we can have some alpha testing
cycles on it."

Should we do this? Patch attached.

Any reason not to add a line to the 9.0 docs/release notes saying
"WARNING: The PGDG currently plan to change this setting's default in 9.1"?

--
Richard Huxton
Archonet Ltd

#5Robert Haas
robertmhaas@gmail.com
In reply to: Richard Huxton (#4)
Re: standard_conforming_strings

On Jul 15, 2010, at 12:30 AM, Richard Huxton <dev@archonet.com> wrote:

On 14/07/10 15:48, Robert Haas wrote:

On Fri, Jan 29, 2010 at 10:02 PM, Josh Berkus<josh@agliodbs.com> wrote:

An actual plan here might look like "let's flip it before 9.1alpha1
so we can get some alpha testing cycles on it" ...

"Hey, let's flip it in 9.1 CF 1, so that we can have some alpha testing
cycles on it."

Should we do this? Patch attached.

Any reason not to add a line to the 9.0 docs/release notes saying "WARNING: The PGDG currently plan to change this setting's default in 9.1"?

Well, mostly that we could change our mind if it makes too big a boom. And it's not as if we could go back and update everyone's docs after-the-fact. I agree we need some press, but the docs are not the right vehicle.

...Robert

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#5)
Re: standard_conforming_strings

Robert Haas <robertmhaas@gmail.com> writes:

On Jul 15, 2010, at 12:30 AM, Richard Huxton <dev@archonet.com> wrote:

Any reason not to add a line to the 9.0 docs/release notes saying "WARNING: The PGDG currently plan to change this setting's default in 9.1"?

Well, mostly that we could change our mind if it makes too big a boom.
And it's not as if we could go back and update everyone's docs
after-the-fact.

Yeah. Our track record for predicting in the version-N docs what
changes will be made in version N+1 is spectacularly bad; we should
not try that here, even if the change is being made before 9.0 actually
goes final. There is already a statement that the default will change
"in a future release", and that seems sufficient to me.

regards, tom lane

#7Peter Eisentraut
peter_e@gmx.net
In reply to: Robert Haas (#1)
Re: standard_conforming_strings

On ons, 2010-07-14 at 10:48 -0400, Robert Haas wrote:

On Fri, Jan 29, 2010 at 10:02 PM, Josh Berkus <josh@agliodbs.com> wrote:

An actual plan here might look like "let's flip it before 9.1alpha1
so we can get some alpha testing cycles on it" ...

"Hey, let's flip it in 9.1 CF 1, so that we can have some alpha testing
cycles on it."

Should we do this? Patch attached.

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place: Either we just flip the
default, make a note in the release notes, and see what happens. Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

#8David E. Wheeler
david@kineticode.com
In reply to: Peter Eisentraut (#7)
Re: standard_conforming_strings

On Jul 18, 2010, at 1:35 AM, Peter Eisentraut wrote:

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place: Either we just flip the
default, make a note in the release notes, and see what happens. Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

Do both. Turn them on, then make a list and inform driver maintainers who need to update. They've got a year, after all.

Best,

David

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#8)
Re: standard_conforming_strings

"David E. Wheeler" <david@kineticode.com> writes:

On Jul 18, 2010, at 1:35 AM, Peter Eisentraut wrote:

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place: Either we just flip the
default, make a note in the release notes, and see what happens. Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

Do both. Turn them on, then make a list and inform driver maintainers who need to update. They've got a year, after all.

Yeah. If we wait for driver authors to do something, we'll never make
this change at all. The idea of committing it now is to give them a
shove, *and* enough time to respond.

regards, tom lane

#10Peter Eisentraut
peter_e@gmx.net
In reply to: David E. Wheeler (#8)
Re: standard_conforming_strings

On sön, 2010-07-18 at 09:42 -0700, David E. Wheeler wrote:

On Jul 18, 2010, at 1:35 AM, Peter Eisentraut wrote:

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place: Either we just flip the
default, make a note in the release notes, and see what happens. Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

Do both. Turn them on, then make a list and inform driver maintainers who need to update. They've got a year, after all.

Here we go then:
http://wiki.postgresql.org/wiki/Standard_conforming_strings

#11Robert Haas
robertmhaas@gmail.com
In reply to: Peter Eisentraut (#10)
Re: standard_conforming_strings

On Mon, Jul 19, 2010 at 5:04 PM, Peter Eisentraut <peter_e@gmx.net> wrote:

On sön, 2010-07-18 at 09:42 -0700, David E. Wheeler wrote:

On Jul 18, 2010, at 1:35 AM, Peter Eisentraut wrote:

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place:  Either we just flip the
default, make a note in the release notes, and see what happens.  Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

Do both. Turn them on, then make a list and inform driver maintainers who need to update. They've got a year, after all.

Here we go then:
http://wiki.postgresql.org/wiki/Standard_conforming_strings

Looks like a good start. We might want to make an "open items for
9.1" page and, as a first such open item, add a link to this page.

Since it seems we have consensus, I will commit the patch.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#12Robert Haas
robertmhaas@gmail.com
In reply to: Robert Haas (#11)
Re: standard_conforming_strings

On Mon, Jul 19, 2010 at 8:32 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Mon, Jul 19, 2010 at 5:04 PM, Peter Eisentraut <peter_e@gmx.net> wrote:

On sön, 2010-07-18 at 09:42 -0700, David E. Wheeler wrote:

On Jul 18, 2010, at 1:35 AM, Peter Eisentraut wrote:

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place:  Either we just flip the
default, make a note in the release notes, and see what happens.  Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

Do both. Turn them on, then make a list and inform driver maintainers who need to update. They've got a year, after all.

Here we go then:
http://wiki.postgresql.org/wiki/Standard_conforming_strings

Looks like a good start.  We might want to make an "open items for
9.1" page and, as a first such open item, add a link to this page.

Since it seems we have consensus, I will commit the patch.

So it turns out that (at least) the hstore and ECPG regression tests
depend on the default setting of standard_conforming_strings. I have
taken a crack at fixing this...

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

#13Marko Kreen
markokr@gmail.com
In reply to: Peter Eisentraut (#10)
Re: standard_conforming_strings

On 7/20/10, Peter Eisentraut <peter_e@gmx.net> wrote:

On sön, 2010-07-18 at 09:42 -0700, David E. Wheeler wrote:

On Jul 18, 2010, at 1:35 AM, Peter Eisentraut wrote:

I think there are two ways we can do this, seeing that most appear to be
in favor of doing it in the first place: Either we just flip the
default, make a note in the release notes, and see what happens. Or we
spend some time now and make, say, a list of driver versions and
application versions that work with standard_conforming_strings = on,
and then decide based on that, and also make that list a public resource
for packagers etc.

Do both. Turn them on, then make a list and inform driver maintainers who need to update. They've got a year, after all.

Here we go then:
http://wiki.postgresql.org/wiki/Standard_conforming_strings

There is two sorts of support:

1. Detect stdstr on startup and use that setting.

2. Detect online changes to stdstr and follow them.

AFAICS psycopg does not support 2). Should we care about that?

There are probably other drivers with partial support.

--
marko

#14Peter Eisentraut
peter_e@gmx.net
In reply to: Marko Kreen (#13)
Re: standard_conforming_strings

On tis, 2010-07-20 at 13:31 +0300, Marko Kreen wrote:

http://wiki.postgresql.org/wiki/Standard_conforming_strings

There is two sorts of support:

1. Detect stdstr on startup and use that setting.

2. Detect online changes to stdstr and follow them.

AFAICS psycopg does not support 2). Should we care about that?

There are probably other drivers with partial support.

I think a driver could also just use E'' when it sees a backslash in the
string.