From 5d4b94085eda499b090dc019b821607065ce5745 Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Fri, 2 Nov 2001 15:04:03 +0000 Subject: [PATCH] Sync parser yet again. --- src/interfaces/ecpg/ChangeLog | 4 ++++ src/interfaces/ecpg/TODO | 26 -------------------------- src/interfaces/ecpg/preproc/preproc.y | 19 +++++++++++-------- 3 files changed, 15 insertions(+), 34 deletions(-) delete mode 100644 src/interfaces/ecpg/TODO diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 07d6c2548f..1e6c960064 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -1142,5 +1142,9 @@ Fri Oct 19 16:32:06 CEST 2001 Sun Oct 21 14:19:42 CEST 2001 - Synced preproc.y with gram.y. + +Fri Nov 2 16:16:25 CET 2001 + + - Synced preproc.y with gram.y. - Set ecpg version to 2.9.0. - Set library version to 3.3.0. diff --git a/src/interfaces/ecpg/TODO b/src/interfaces/ecpg/TODO deleted file mode 100644 index 3f38592658..0000000000 --- a/src/interfaces/ecpg/TODO +++ /dev/null @@ -1,26 +0,0 @@ -The complete structure definition has to be listed inside the declare -section of the structure variable for ecpg to be able to understand it. - -sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified in a SET -DESCRIPTOR statement will be ignored. - -The error handling has to be improved by adding additional error-rules to -the parser. - -it would be nice to be able to use :var[:index] or :var[] as -cvariable for an array var - -What happens to the output variable during read if there was an -indicator-error? - -Add a semantic check level, e.g. check if a table really exists. - -It would be nice if there was a alternative library using SPI functions -instead of libpq so we can write backend functions using ecpg. - -remove space_or_nl and line_end from pgc.l - -nested C comments do not work - -Missing features: - - SQLSTATE diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 1d2982ad5f..dfa16e119a 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -2679,17 +2679,20 @@ OptUseOp: USING all_Op { $$ = cat2_str(make_str("using"), $2); } | /*EMPTY*/ { $$ = EMPTY; } ; -select_limit: LIMIT select_offset_value ',' select_limit_value - { $$ = cat_str(4, make_str("limit"), $2, make_str(","), $4); } - | LIMIT select_limit_value OFFSET select_offset_value +select_limit: LIMIT select_limit_value OFFSET select_offset_value { $$ = cat_str(4, make_str("limit"), $2, make_str("offset"), $4); } - | LIMIT select_limit_value - { $$ = cat2_str(make_str("limit"), $2); } - | OFFSET select_offset_value LIMIT select_limit_value + | OFFSET select_offset_value LIMIT select_limit_value { $$ = cat_str(4, make_str("offset"), $2, make_str("limit"), $4); } - | OFFSET select_offset_value + | LIMIT select_limit_value + { $$ = cat2_str(make_str("limit"), $2); } + | OFFSET select_offset_value { $$ = cat2_str(make_str("offset"), $2); } - ; + | LIMIT select_limit_value ',' select_offset_value + { $$ = cat_str(4, make_str("limit"), $2, make_str(","), $4); } + /* enable this in 7.3, bjm 2001-10-22 + { mmerror(ET_NOTICE, "No longer supported LIMIT #,# syntax passed to backend."); } + */ + ; opt_select_limit: select_limit { $$ = $1; } | /*EMPTY*/ { $$ = EMPTY; }