Changed ecpg parser to allow RETURNING clauses without attached C variables.

This commit is contained in:
Michael Meskes 2017-08-14 11:29:34 +02:00
parent 004a9702e0
commit ea0ca75d5d
3 changed files with 7 additions and 3 deletions

View File

@ -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
{

View File

@ -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

View File

@ -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'