- 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.
+
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/datetime.h,v 1.14 2008/02/14 12:27:26 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/datetime.h,v 1.15 2008/02/15 11:20:21 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 */
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/decimal.h,v 1.16 2008/02/14 12:27:26 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/decimal.h,v 1.17 2008/02/15 11:20:21 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 */
/*
* This file contains stuff needed to be as compatible to Informix as possible.
- * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg_informix.h,v 1.20 2008/02/14 12:27:26 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg_informix.h,v 1.21 2008/02/15 11:20:21 meskes Exp $
*/
#ifndef _ECPG_INFORMIX_H
#define _ECPG_INFORMIX_H
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
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.161 2008/02/14 12:27:26 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.162 2008/02/15 11:20:21 meskes Exp $
*
*-------------------------------------------------------------------------
*/
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;
<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())
+ if (!isdefine())
{
keyword = ScanCKeywordLookup(yytext);
if (keyword != NULL)
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
*/