summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas2010-07-20 00:34:44 +0000
committerRobert Haas2010-07-20 00:34:44 +0000
commit0839f312e92c7ab0aecb2c4133197a7da7c5fc39 (patch)
tree50617bbb1f9c6ccc2e3e35b5a94a3998b08a89d5
parent0b4a0868f92baca61b5db5ea7c5e3c919621db4d (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.sgml9
-rw-r--r--doc/src/sgml/syntax.sgml21
-rw-r--r--src/backend/parser/scan.l4
-rw-r--r--src/backend/utils/misc/guc.c4
-rw-r--r--src/backend/utils/misc/postgresql.conf.sample2
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 -