diff options
| -rw-r--r-- | src/bin/psql/psqlscan.l | 33 | 
1 files changed, 32 insertions, 1 deletions
| diff --git a/src/bin/psql/psqlscan.l b/src/bin/psql/psqlscan.l index dfde8db19be..5fefa475af6 100644 --- a/src/bin/psql/psqlscan.l +++ b/src/bin/psql/psqlscan.l @@ -723,6 +723,23 @@ other			.  				}  	/* +	 * These rules just avoid the need for scanner backup if one of the +	 * two rules above fails to match completely. +	 */ + +:'[A-Za-z0-9_]*	{ +					/* Throw back everything but the colon */ +					yyless(1); +					ECHO; +				} + +:\"[A-Za-z0-9_]*	{ +					/* Throw back everything but the colon */ +					yyless(1); +					ECHO; +				} + +	/*  	 * Back to backend-compatible rules.  	 */ @@ -912,7 +929,7 @@ other			.  					}  				} -:[A-Za-z0-9_]*	{ +:[A-Za-z0-9_]+	{  					/* Possible psql variable substitution */  					if (option_type == OT_VERBATIM)  						ECHO; @@ -959,6 +976,20 @@ other			.  					}  				} +:'[A-Za-z0-9_]*	{ +					/* Throw back everything but the colon */ +					yyless(1); +					ECHO; +					BEGIN(xslashdefaultarg); +				} + +:\"[A-Za-z0-9_]*	{ +					/* Throw back everything but the colon */ +					yyless(1); +					ECHO; +					BEGIN(xslashdefaultarg); +				} +  "|"				{  					ECHO;  					if (option_type == OT_FILEPIPE) | 
