From: Robert Haas Date: Tue, 20 Jul 2010 00:34:44 +0000 (+0000) Subject: Change the default value of standard_conforming_strings to on. X-Git-Tag: REL9_1_ALPHA1~201 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0839f312e92c7ab0aecb2c4133197a7da7c5fc39;p=postgresql 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. --- 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 @@ - + Server Configuration @@ -5237,11 +5237,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' This controls whether ordinary string literals ('...') treat backslashes literally, as specified in the SQL standard. - The default is currently off, causing - PostgreSQL to have its historical - behavior of treating backslashes as escape characters. - The default will change to on in a future release - to improve compatibility with the SQL standard. + Beginning in PostgreSQL 9.1, the default is + on (prior releases defaulted to 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 @@ - + SQL Syntax @@ -445,16 +445,15 @@ SELECT 'foo' 'bar'; If the configuration parameter is off, then PostgreSQL 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 standard_conforming_strings currently defaults to - off, the default will change to 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 E to be sure it will be handled the same - way in future releases. + in both regular and escape string constants. However, as of + PostgreSQL 9.1, the default is 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 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 E. 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 . * * 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 -