SQL defines are only used in SQL space in Informix mode.

This commit is contained in:
Michael Meskes 2004-07-26 10:28:28 +00:00
parent 5b2f4afffe
commit b14158f405
2 changed files with 25 additions and 13 deletions

View File

@ -1850,6 +1850,10 @@ Tue Jul 20 09:15:21 CEST 2004
- Synced parser and keyword list. - Synced parser and keyword list.
- Fixed handling of cyclic defines. - Fixed handling of cyclic defines.
Mon Jul 26 09:04:53 CEST 2004
- SQL defines are only used in SQL space in Informix mode.
- Set pgtypes library version to 1.2. - Set pgtypes library version to 1.2.
- Set ecpg version to 3.2.0. - Set ecpg version to 3.2.0.
- Set compat library version to 1.2. - Set compat library version to 1.2.

View File

@ -12,7 +12,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.130 2004/07/20 18:06:41 meskes Exp $ * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.131 2004/07/26 10:28:28 meskes Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -693,24 +693,32 @@ cppline {space}*#(.*\\{space})+.*
ScanKeyword *keyword; ScanKeyword *keyword;
struct _defines *ptr; struct _defines *ptr;
/* is it a define? */ if (INFORMIX_MODE)
for (ptr = defines; ptr; ptr = ptr->next)
{ {
if (strcmp(yytext, ptr->old) == 0 && ptr->used == NULL) /* Informix uses SQL defines only in SQL space */
ptr = NULL;
}
else
{
/* is it a define? */
for (ptr = defines; ptr; ptr = ptr->next)
{ {
struct _yy_buffer *yb; if (strcmp(yytext, ptr->old) == 0 && ptr->used == NULL)
{
struct _yy_buffer *yb;
yb = mm_alloc(sizeof(struct _yy_buffer)); yb = mm_alloc(sizeof(struct _yy_buffer));
yb->buffer = YY_CURRENT_BUFFER; yb->buffer = YY_CURRENT_BUFFER;
yb->lineno = yylineno; yb->lineno = yylineno;
yb->filename = mm_strdup(input_filename); yb->filename = mm_strdup(input_filename);
ptr->used = yb->next = yy_buffer; ptr->used = yb->next = yy_buffer;
yy_buffer = yb; yy_buffer = yb;
yy_scan_string(ptr->new); yy_scan_string(ptr->new);
break; break;
}
} }
} }