aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/ChangeLog6
-rw-r--r--src/interfaces/ecpg/preproc/keywords.c3
-rw-r--r--src/interfaces/ecpg/preproc/pgc.l2
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y7
4 files changed, 13 insertions, 5 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index a08db67ff6b..3f58d45c567 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 dbfd7002e64..5306860ae39 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 aa7b1852652..0ae21909785 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -487,7 +487,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
}
<SQL>{space} { /* ignore */ }
<SQL>{other} { return yytext[0]; }
-<C>{exec}{space}{sql} { BEGIN SQL; return SQL_START; }
+<C>{exec}{space}*{sql} { BEGIN SQL; return SQL_START; }
<C>{ccomment} { /* ignore */ }
<C>{cppline} {
yylval.str = mm_strdup((char*)yytext);
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index c46d68383cd..84984acf943 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);
}