aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/ChangeLog10
-rw-r--r--src/interfaces/ecpg/ecpglib/data.c5
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y19
3 files changed, 25 insertions, 9 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 4074ab02320..2d45486a3a9 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 cc802152a03..e783e4f077b 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 e369927a96f..cac581d6c79 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"); }
;
/*****************************************************************************