OSDN Git Service

Added more compat stuff ot the parser.
authorMichael Meskes <meskes@postgresql.org>
Fri, 18 Jul 2003 14:32:56 +0000 (14:32 +0000)
committerMichael Meskes <meskes@postgresql.org>
Fri, 18 Jul 2003 14:32:56 +0000 (14:32 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ecpglib/data.c
src/interfaces/ecpg/preproc/preproc.y

index 4074ab0..2d45486 100644 (file)
@@ -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
index cc80215..e783e4f 100644 (file)
@@ -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
index e369927..cac581d 100644 (file)
@@ -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"); }
                ;
 
 /*****************************************************************************