diff options
author | Robert Haas | 2010-07-20 00:34:44 +0000 |
---|---|---|
committer | Robert Haas | 2010-07-20 00:34:44 +0000 |
commit | 0839f312e92c7ab0aecb2c4133197a7da7c5fc39 (patch) | |
tree | 50617bbb1f9c6ccc2e3e35b5a94a3998b08a89d5 | |
parent | 0b4a0868f92baca61b5db5ea7c5e3c919621db4d (diff) |
Change the default value of standard_conforming_strings to on.
This change should be publicized to driver maintainers at once and
release-noted as an incompatibility with previous releases.
-rw-r--r-- | doc/src/sgml/config.sgml | 9 | ||||
-rw-r--r-- | doc/src/sgml/syntax.sgml | 21 | ||||
-rw-r--r-- | src/backend/parser/scan.l | 4 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 4 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 2 |
5 files changed, 18 insertions, 22 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 2a907f6e46..a03b0dfe39 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.296 2010/07/16 22:25:47 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.297 2010/07/20 00:34:44 rhaas Exp $ --> <chapter Id="runtime-config"> <title>Server Configuration</title> @@ -5237,11 +5237,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' This controls whether ordinary string literals (<literal>'...'</>) treat backslashes literally, as specified in the SQL standard. - The default is currently <literal>off</>, causing - <productname>PostgreSQL</productname> to have its historical - behavior of treating backslashes as escape characters. - The default will change to <literal>on</> in a future release - to improve compatibility with the SQL standard. + Beginning in <productname>PostgreSQL</productname> 9.1, the default is + <literal>on</> (prior releases defaulted to <literal>off</>). Applications can check this parameter to determine how string literals will be processed. The presence of this parameter can also be taken as an indication diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml index bf63425a71..fcf5f161d8 100644 --- a/doc/src/sgml/syntax.sgml +++ b/doc/src/sgml/syntax.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/syntax.sgml,v 1.147 2010/07/03 02:57:46 rhaas Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/syntax.sgml,v 1.148 2010/07/20 00:34:44 rhaas Exp $ --> <chapter id="sql-syntax"> <title>SQL Syntax</title> @@ -445,16 +445,15 @@ SELECT 'foo' 'bar'; If the configuration parameter <xref linkend="guc-standard-conforming-strings"> is <literal>off</>, then <productname>PostgreSQL</productname> recognizes backslash escapes - in both regular and escape string constants. This is for backward - compatibility with the historical behavior, where backslash escapes - were always recognized. - Although <varname>standard_conforming_strings</> currently defaults to - <literal>off</>, the default will change to <literal>on</> in a future - release for improved standards compliance. Applications are therefore - encouraged to migrate away from using backslash escapes. If you need - to use a backslash escape to represent a special character, write the - string constant with an <literal>E</> to be sure it will be handled the same - way in future releases. + in both regular and escape string constants. However, as of + <productname>PostgreSQL</> 9.1, the default is <literal>on</>, meaning + that backslash escapes are recognized only in escape string constants. + This behavior is more standards-compliant, but might break applications + which rely on the historical behavior, where backslash escapes + were always recognized. As a workaround, you can set this parameter + to <literal>off</>, but it is better to migrate away from using backslash + escapes. If you need to use a backslash escape to represent a special + character, write the string constant with an <literal>E</>. </para> <para> diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 81502adc95..433ebb3a28 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -24,7 +24,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/scan.l,v 1.167 2010/05/30 18:10:41 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/scan.l,v 1.168 2010/07/20 00:34:44 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -52,7 +52,7 @@ */ int backslash_quote = BACKSLASH_QUOTE_SAFE_ENCODING; bool escape_string_warning = true; -bool standard_conforming_strings = false; +bool standard_conforming_strings = true; /* * Set the type of YYSTYPE. diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 9e85054c67..7a28594e33 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut <[email protected]>. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.562 2010/07/16 22:25:50 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.563 2010/07/20 00:34:44 rhaas Exp $ * *-------------------------------------------------------------------- */ @@ -1211,7 +1211,7 @@ static struct config_bool ConfigureNamesBool[] = GUC_REPORT }, &standard_conforming_strings, - false, NULL, NULL + true, NULL, NULL }, { diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 9d0f5825d4..f02d44de72 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -511,7 +511,7 @@ #escape_string_warning = on #lo_compat_privileges = off #sql_inheritance = on -#standard_conforming_strings = off +#standard_conforming_strings = on #synchronize_seqscans = on # - Other Platforms and Clients - |