From c6d3c1b817c705f4e06a20fea41add9ec68269c3 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Wed, 31 May 2006 22:11:44 +0000
Subject: [PATCH] Fix seriously broken patch for psql '' ... per its comment,
 emit() is NOT the thing to use here.

---
 src/bin/psql/psqlscan.l | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/bin/psql/psqlscan.l b/src/bin/psql/psqlscan.l
index 2c19b7ae9e1..484558a1415 100644
--- a/src/bin/psql/psqlscan.l
+++ b/src/bin/psql/psqlscan.l
@@ -33,7 +33,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.19 2006/05/31 11:35:17 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.20 2006/05/31 22:11:44 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -857,12 +857,14 @@ other			.
 }
 
 <xslashquote>{
-	/* single-quoted text: copy literally except for backslash sequences */
+	/*
+	 * single-quoted text: copy literally except for '' and backslash
+	 * sequences
+	 */
 
 {quote}			{ return LEXRES_OK; }
 
-    /* We don't need a state here because we are already in a string */
-{xqdouble}		{ emit("'", 1); }
+{xqdouble}		{ appendPQExpBufferChar(output_buf, '\''); }
 
 "\\n"			{ appendPQExpBufferChar(output_buf, '\n'); }
 "\\t"			{ appendPQExpBufferChar(output_buf, '\t'); }
-- 
GitLab