aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2017-08-14 11:29:34 +0200
committerMichael Meskes <meskes@postgresql.org>2017-08-16 13:28:37 +0200
commitf2ed2d0a12bede8e6d91b3acc8f6100be3927990 (patch)
treedbbbc77a04ca031febfe2c42a2d4364a75e6c678 /src
parenteff9ef73f823e3e59f34b85456242fad5967a847 (diff)
downloadpostgresql-f2ed2d0a12bede8e6d91b3acc8f6100be3927990.tar.gz
postgresql-f2ed2d0a12bede8e6d91b3acc8f6100be3927990.zip
Changed ecpg parser to allow RETURNING clauses without attached C variables.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/preproc/ecpg.trailer7
-rw-r--r--src/interfaces/ecpg/preproc/ecpg.type1
-rw-r--r--src/interfaces/ecpg/preproc/parse.pl2
3 files changed, 7 insertions, 3 deletions
diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer
index 1c108795de9..d273070dabf 100644
--- a/src/interfaces/ecpg/preproc/ecpg.trailer
+++ b/src/interfaces/ecpg/preproc/ecpg.trailer
@@ -1877,9 +1877,8 @@ Iresult: Iconst { $$ = $1; }
;
execute_rest: /* EMPTY */ { $$ = EMPTY; }
- | ecpg_using ecpg_into { $$ = EMPTY; }
+ | ecpg_using opt_ecpg_into { $$ = EMPTY; }
| ecpg_into ecpg_using { $$ = EMPTY; }
- | ecpg_using { $$ = EMPTY; }
| ecpg_into { $$ = EMPTY; }
;
@@ -1887,6 +1886,10 @@ ecpg_into: INTO into_list { $$ = EMPTY; }
| into_descriptor { $$ = $1; }
;
+opt_ecpg_into: /* EMPTY */ { $$ = EMPTY; }
+ | ecpg_into { $$ = $1; }
+ ;
+
ecpg_fetch_into: ecpg_into { $$ = $1; }
| using_descriptor
{
diff --git a/src/interfaces/ecpg/preproc/ecpg.type b/src/interfaces/ecpg/preproc/ecpg.type
index ac6aa000ac2..9497b91b9db 100644
--- a/src/interfaces/ecpg/preproc/ecpg.type
+++ b/src/interfaces/ecpg/preproc/ecpg.type
@@ -78,6 +78,7 @@
%type <str> opt_bit_field
%type <str> opt_connection_name
%type <str> opt_database_name
+%type <str> opt_ecpg_into
%type <str> opt_ecpg_fetch_into
%type <str> opt_ecpg_using
%type <str> opt_initializer
diff --git a/src/interfaces/ecpg/preproc/parse.pl b/src/interfaces/ecpg/preproc/parse.pl
index 83bd41b3776..cfce4b19280 100644
--- a/src/interfaces/ecpg/preproc/parse.pl
+++ b/src/interfaces/ecpg/preproc/parse.pl
@@ -98,7 +98,7 @@ my %replace_line = (
'VariableShowStmtSHOWSESSIONAUTHORIZATION' =>
'SHOW SESSION AUTHORIZATION ecpg_into',
'returning_clauseRETURNINGtarget_list' =>
- 'RETURNING target_list ecpg_into',
+ 'RETURNING target_list opt_ecpg_into',
'ExecuteStmtEXECUTEnameexecute_param_clause' =>
'EXECUTE prepared_name execute_param_clause execute_rest',
'ExecuteStmtCREATEOptTempTABLEcreate_as_targetASEXECUTEnameexecute_param_clause'