diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index a08db67ff6..3f58d45c56 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -563,6 +563,12 @@ Wed Apr 14 17:59:06 CEST 1999 Fri Apr 16 18:25:18 CEST 1999 - Fixed small bug in ECPGfinish(). + +Sat Apr 24 12:39:07 CEST 1999 + + - Synced preproc.y with gram.y. + - Allow more than one blank between EXEC and SQL. + - Allow statements to be prepared from a character string, too. - Set library version to 3.0.0 - Set ecpg version to 2.6.0 diff --git a/src/interfaces/ecpg/preproc/keywords.c b/src/interfaces/ecpg/preproc/keywords.c index dbfd7002e6..5306860ae3 100644 --- a/src/interfaces/ecpg/preproc/keywords.c +++ b/src/interfaces/ecpg/preproc/keywords.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.12 1999/03/20 19:46:53 meskes Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.13 1999/04/26 05:28:47 meskes Exp $ * *------------------------------------------------------------------------- */ @@ -213,6 +213,7 @@ static ScanKeyword ScanKeywords[] = { {"substring", SUBSTRING}, {"table", TABLE}, {"temp", TEMP}, + {"temporary", TEMPORARY}, {"then", THEN}, {"time", TIME}, {"timestamp", TIMESTAMP}, diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index aa7b185265..0ae2190978 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -487,7 +487,7 @@ cppline {space}*#.*(\\{space}*\n)*\n* } {space} { /* ignore */ } {other} { return yytext[0]; } -{exec}{space}{sql} { BEGIN SQL; return SQL_START; } +{exec}{space}*{sql} { BEGIN SQL; return SQL_START; } {ccomment} { /* ignore */ } {cppline} { yylval.str = mm_strdup((char*)yytext); diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index c46d68383c..84984acf94 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -692,8 +692,8 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim PARTIAL, POSITION, PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC, READ, REFERENCES, RELATIVE, REVOKE, RIGHT, ROLLBACK, SCROLL, SECOND_P, SELECT, SET, SUBSTRING, - TABLE, TEMP, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, - TO, TRAILING, TRANSACTION, TRIM, TRUE_P, + TABLE, TEMP, TEMPORARY, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, + TIMEZONE_MINUTE, TO, TRAILING, TRANSACTION, TRIM, TRUE_P, UNION, UNIQUE, UPDATE, USER, USING, VALUES, VARCHAR, VARYING, VIEW, WHEN, WHERE, WITH, WORK, YEAR_P, ZONE @@ -1301,6 +1301,7 @@ CreateStmt: CREATE OptTemp TABLE relation_name '(' OptTableElementList ')' ; OptTemp: TEMP { $$ = make1_str("temp"); } + | TEMPORARY { $$ = make1_str("temporary"); } | /* EMPTY */ { $$ = make1_str(""); } ; @@ -5140,7 +5141,7 @@ variablelist: cinputvariable | cinputvariable ',' variablelist * As long as the prepare statement is not supported by the backend, we will * try to simulate it here so we get dynamic SQL */ -ECPGPrepare: SQL_PREPARE ident FROM char_variable +ECPGPrepare: SQL_PREPARE ident FROM execstring { $$ = make4_str(make1_str("\""), $2, make1_str("\", "), $4); }