From 45d8f61ff28f30352f11a18c41e9bce385c9a8b0 Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Fri, 18 Jul 2003 14:32:56 +0000 Subject: [PATCH] Added more compat stuff ot the parser. --- src/interfaces/ecpg/ChangeLog | 10 +++++++++- src/interfaces/ecpg/ecpglib/data.c | 5 +---- src/interfaces/ecpg/preproc/preproc.y | 19 +++++++++++++++---- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 4074ab0232..2d45486a3a 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -1578,7 +1578,15 @@ Mon Jul 14 09:34:04 CEST 2003 Tue Jul 15 14:28:53 CEST 2003 - _ Started to add error codes for backend error messages. + - Started to add error codes for backend error messages. + +Thu Jul 17 09:15:59 CEST 2003 + + - Fixed some bugs in informix compat functions. + +Fri Jul 18 16:31:10 CEST 2003 + + - Added some more compatibility features to the parser. - Set ecpg version to 3.0.0 - Set ecpg library to 4.0.0 - Set pgtypes library to 1.0.0 diff --git a/src/interfaces/ecpg/ecpglib/data.c b/src/interfaces/ecpg/ecpglib/data.c index cc802152a0..e783e4f077 100644 --- a/src/interfaces/ecpg/ecpglib/data.c +++ b/src/interfaces/ecpg/ecpglib/data.c @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.12 2003/07/17 11:27:55 meskes Exp $ */ +/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.13 2003/07/18 14:32:56 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -354,17 +354,14 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno, { case ECPGt_short: case ECPGt_unsigned_short: - /* ((short *) ind)[act_tuple] = variable->len;*/ *((short *) (ind + offset * act_tuple)) = variable->len; break; case ECPGt_int: case ECPGt_unsigned_int: - /* ((int *) ind)[act_tuple] = variable->len;*/ *((int *) (ind + offset * act_tuple)) = variable->len; break; case ECPGt_long: case ECPGt_unsigned_long: - /* ((long *) ind)[act_tuple] = variable->len;*/ *((long *) (ind + offset * act_tuple)) = variable->len; break; #ifdef HAVE_LONG_LONG_INT_64 diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index e369927a96..cac581d6c7 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.248 2003/07/14 12:18:25 meskes Exp $ */ +/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.249 2003/07/18 14:32:56 meskes Exp $ */ /* Copyright comment */ %{ @@ -1818,12 +1818,24 @@ TruncateStmt: TRUNCATE opt_table qualified_name * *****************************************************************************/ +/* This is different from the backend as we try to be compatible with many other + * embedded SQL implementations. So we accept their syntax as well and + * translate it to the PGSQL syntax. */ + FetchStmt: FETCH fetch_direction from_in name ecpg_into_using { $$ = cat_str(4, make_str("fetch"), $2, $3, $4); } + | FETCH fetch_direction name ecpg_into_using + { $$ = cat_str(4, make_str("fetch"), $2, make_str("from"), $3); } + | FETCH from_in name ecpg_into_using + { $$ = cat_str(3, make_str("fetch"), $2, $3); } | FETCH name ecpg_into_using { $$ = cat2_str(make_str("fetch"), $2); } | FETCH fetch_direction from_in name { $$ = cat_str(4, make_str("fetch"), $2, $3, $4); } + | FETCH fetch_direction name + { $$ = cat_str(4, make_str("fetch"), $2, make_str("from"), $3); } + | FETCH from_in name + { $$ = cat_str(3, make_str("fetch"), $2, $3); } | FETCH name { $$ = cat2_str(make_str("fetch"), $2); } | MOVE fetch_direction from_in name @@ -1832,8 +1844,7 @@ FetchStmt: FETCH fetch_direction from_in name ecpg_into_using { $$ = cat2_str(make_str("move"), $2); } ; -fetch_direction: /* EMPTY */ { $$ = EMPTY; } - | NEXT { $$ = make_str("next"); } +fetch_direction: NEXT { $$ = make_str("next"); } | PRIOR { $$ = make_str("prior"); } | FIRST_P { $$ = make_str("first"); } | LAST_P { $$ = make_str("last"); } @@ -1853,7 +1864,7 @@ fetch_count: IntConst { $$ = $1; } ; from_in: IN_P { $$ = make_str("in"); } - | FROM { $$ = make_str("from"); } + | FROM { $$ = make_str("from"); } ; /***************************************************************************** -- 2.11.0