aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pl/plpgsql/src/gram.y12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/pl/plpgsql/src/gram.y b/src/pl/plpgsql/src/gram.y
index dfff1963503..2461deaf328 100644
--- a/src/pl/plpgsql/src/gram.y
+++ b/src/pl/plpgsql/src/gram.y
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.89 2006/05/26 23:48:54 momjian Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.90 2006/05/27 19:45:52 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,7 +17,7 @@
#include "plpgsql.h"
#include "parser/parser.h"
-#include "parser/gramparse.h"
+
static PLpgSQL_expr *read_sql_construct(int until,
int until2,
@@ -377,12 +377,16 @@ decl_statement : decl_varname decl_const decl_datatype decl_notnull decl_defval
strcpy(buf, "SELECT ");
cp1 = new->refname;
cp2 = buf + strlen(buf);
- if (!standard_conforming_strings && strchr(cp1, '\\') != NULL)
+ /*
+ * Don't trust standard_conforming_strings here;
+ * it might change before we use the string.
+ */
+ if (strchr(cp1, '\\') != NULL)
*cp2++ = ESCAPE_STRING_SYNTAX;
*cp2++ = '\'';
while (*cp1)
{
- if (SQL_STR_DOUBLE(*cp1, !standard_conforming_strings))
+ if (SQL_STR_DOUBLE(*cp1, true))
*cp2++ = *cp1;
*cp2++ = *cp1++;
}