aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/ChangeLog9
-rw-r--r--src/interfaces/ecpg/include/datetime.h7
-rw-r--r--src/interfaces/ecpg/include/decimal.h5
-rw-r--r--src/interfaces/ecpg/include/ecpg_informix.h7
-rw-r--r--src/interfaces/ecpg/include/ecpglib.h5
-rw-r--r--src/interfaces/ecpg/preproc/pgc.l41
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y4
7 files changed, 33 insertions, 45 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 846c67cc0c9..7a2f8346a64 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -2307,4 +2307,13 @@ Wed, 06 Feb 2008 09:04:48 +0100
- Fixed segfault in ecpg when using an array element.
- Free all memory in auto-prepare mode.
+Thu, 14 Feb 2008 13:11:34 +0100
+
+ - Added SQLSTATE macro closing bug #3961.
+ - EXECUTE can return NOT FOUND so it should be checked here too.
+ - Changed regression test accordingly.
+
+Fri, 15 Feb 2008 12:01:13 +0100
+
+ - Changed the way symbols are defined in C in INFORMIX mode.
diff --git a/src/interfaces/ecpg/include/datetime.h b/src/interfaces/ecpg/include/datetime.h
index c3a70626755..e18aae7b048 100644
--- a/src/interfaces/ecpg/include/datetime.h
+++ b/src/interfaces/ecpg/include/datetime.h
@@ -1,11 +1,12 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/datetime.h,v 1.12 2006/03/11 04:38:39 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/datetime.h,v 1.12.4.1 2008/02/15 12:11:02 meskes Exp $ */
#ifndef _ECPG_DATETIME_H
#define _ECPG_DATETIME_H
#include <ecpg_informix.h>
-typedef timestamp dtime_t;
-typedef interval intrvl_t;
+/* brought in by ecpg_informix.h nowadays
+ * typedef timestamp dtime_t;
+ * typedef interval intrvl_t; */
#endif /* ndef _ECPG_DATETIME_H */
diff --git a/src/interfaces/ecpg/include/decimal.h b/src/interfaces/ecpg/include/decimal.h
index 9944f052e33..3bbd6f0357b 100644
--- a/src/interfaces/ecpg/include/decimal.h
+++ b/src/interfaces/ecpg/include/decimal.h
@@ -1,10 +1,11 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/decimal.h,v 1.14 2006/03/11 04:38:39 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/decimal.h,v 1.14.4.1 2008/02/15 12:11:02 meskes Exp $ */
#ifndef _ECPG_DECIMAL_H
#define _ECPG_DECIMAL_H
#include <ecpg_informix.h>
-typedef decimal dec_t;
+/* brought in by ecpg_informix.h nowadays
+ * typedef decimal dec_t; */
#endif /* ndef _ECPG_DECIMAL_H */
diff --git a/src/interfaces/ecpg/include/ecpg_informix.h b/src/interfaces/ecpg/include/ecpg_informix.h
index 4441c56b335..c19fa8d6738 100644
--- a/src/interfaces/ecpg/include/ecpg_informix.h
+++ b/src/interfaces/ecpg/include/ecpg_informix.h
@@ -1,6 +1,6 @@
/*
* This file contains stuff needed to be as compatible to Informix as possible.
- * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg_informix.h,v 1.18 2006/03/11 04:38:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg_informix.h,v 1.18.4.1 2008/02/15 12:11:02 meskes Exp $
*/
#ifndef _ECPG_INFORMIX_H
#define _ECPG_INFORMIX_H
@@ -82,6 +82,11 @@ extern int dttofmtasc(timestamp *, char *, int, char *);
extern int intoasc(interval *, char *);
extern int dtcvfmtasc(char *, char *, timestamp *);
+/* we also define Informix datatypes here */
+typedef timestamp dtime_t;
+typedef interval intrvl_t;
+typedef decimal dec_t;
+
#ifdef __cplusplus
}
#endif
diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index 18cab5029e9..6034a0901f5 100644
--- a/src/interfaces/ecpg/include/ecpglib.h
+++ b/src/interfaces/ecpg/include/ecpglib.h
@@ -1,7 +1,7 @@
/*
* this is a small part of c.h since we don't want to leak all postgres
* definitions into ecpg programs
- * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.74 2008/01/13 11:53:16 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.74.2.1 2008/02/15 12:11:02 meskes Exp $
*/
#ifndef _ECPGLIB_H
@@ -58,7 +58,8 @@ void sqlprint(void);
/* define this for simplicity as well as compatibility */
-#define SQLCODE sqlca.sqlcode
+#define SQLCODE sqlca.sqlcode
+#define SQLSTATE sqlca.sqlstate
/* dynamic SQL */
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index e5bd28be920..ee2805d157f 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.159 2008/01/15 10:31:47 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.159.2.1 2008/02/15 12:11:02 meskes Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,7 +47,6 @@ static void addlitchar (unsigned char);
static void parse_include (void);
static bool ecpg_isspace(char ch);
static bool isdefine(void);
-static bool isinformixdefine(void);
char *token_start;
int state_before;
@@ -744,9 +743,11 @@ cppline {space}*#(.*\\{space})*.*{newline}
<C>{identifier} {
const ScanKeyword *keyword;
- /* Informix uses SQL defines only in SQL space */
- /* however, some defines have to be taken care of for compatibility */
- if ((!INFORMIX_MODE || !isinformixdefine()) && !isdefine())
+<<<<<<< pgc.l
+ if (!INFORMIX_MODE && !isdefine())
+=======
+ if (!isdefine())
+>>>>>>> 1.162
{
keyword = ScanCKeywordLookup(yytext);
if (keyword != NULL)
@@ -1318,36 +1319,6 @@ static bool isdefine(void)
return false;
}
-static bool isinformixdefine(void)
-{
- const char *new = NULL;
-
- if (strcmp(yytext, "dec_t") == 0)
- new = "decimal";
- else if (strcmp(yytext, "intrvl_t") == 0)
- new = "interval";
- else if (strcmp(yytext, "dtime_t") == 0)
- new = "timestamp";
-
- if (new)
- {
- struct _yy_buffer *yb;
-
- yb = mm_alloc(sizeof(struct _yy_buffer));
-
- yb->buffer = YY_CURRENT_BUFFER;
- yb->lineno = yylineno;
- yb->filename = mm_strdup(input_filename);
- yb->next = yy_buffer;
- yy_buffer = yb;
-
- yy_scan_string(new);
- return true;
- }
-
- return false;
-}
-
/*
* Called before any actual parsing is done
*/
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 9bcf9944803..5b7cef224c4 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.359 2008/01/15 10:31:47 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.359.2.1 2008/02/15 12:11:02 meskes Exp $ */
/* Copyright comment */
%{
@@ -807,7 +807,7 @@ stmt: AlterDatabaseStmt { output_statement($1, 0, ECPGst_normal); }
| DropUserStmt { output_statement($1, 0, ECPGst_normal); }
| DropdbStmt { output_statement($1, 0, ECPGst_normal); }
| ExplainStmt { output_statement($1, 0, ECPGst_normal); }
- | ExecuteStmt { output_statement($1, 0, ECPGst_execute); }
+ | ExecuteStmt { output_statement($1, 1, ECPGst_execute); }
| FetchStmt { output_statement($1, 1, ECPGst_normal); }
| GrantStmt { output_statement($1, 0, ECPGst_normal); }
| GrantRoleStmt { output_statement($1, 0, ECPGst_normal); }