diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 8a7253dae53d088ad0aa3e5df8cac3167e6fcc61..2738caf6a98e8e53c09dd03e063b2f757efc0b69 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -643,3 +643,8 @@ Fri Sep 17 18:16:34 CEST 1999 - Made sure sqlca is initialized everytime. - Set library version to 3.0.3 +Mon Sep 27 07:40:20 CEST 1999 + + - Synced preproc.y with gram.y. + - Synced keyword.c. + - Set ecpg version to 2.6.5 diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index 117e2527afe833c28d9077d92447b143fb8031aa..d639ae7ca9a323207e03cf30f4a4f76d0cabe57b 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global MAJOR_VERSION=2 MINOR_VERSION=6 -PATCHLEVEL=4 +PATCHLEVEL=5 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \ -DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \ diff --git a/src/interfaces/ecpg/preproc/keywords.c b/src/interfaces/ecpg/preproc/keywords.c index fe72134a98ac3bbfdc24a5a4d37c4e0a6419b529..d8e8c658b4baae5f107f2c195f7a1e2c0fe47f45 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.16 1999/07/17 20:18:39 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.17 1999/09/27 10:41:02 meskes Exp $ * *------------------------------------------------------------------------- */ @@ -30,6 +30,7 @@ static ScanKeyword ScanKeywords[] = { /* name, value */ {"abort", ABORT_TRANS}, {"absolute", ABSOLUTE}, + {"access", ACCESS}, {"action", ACTION}, {"add", ADD}, {"after", AFTER}, @@ -61,6 +62,7 @@ static ScanKeyword ScanKeywords[] = { {"collate", COLLATE}, {"column", COLUMN}, {"commit", COMMIT}, + {"committed", COMMITTED}, {"constraint", CONSTRAINT}, {"copy", COPY}, {"create", CREATE}, @@ -90,7 +92,7 @@ static ScanKeyword ScanKeywords[] = { {"encoding", ENCODING}, {"end", END_TRANS}, {"except", EXCEPT}, - + {"exclusive", EXCLUSIVE}, {"execute", EXECUTE}, {"exists", EXISTS}, {"explain", EXPLAIN}, @@ -105,6 +107,7 @@ static ScanKeyword ScanKeywords[] = { {"from", FROM}, {"full", FULL}, {"function", FUNCTION}, + {"global", GLOBAL}, {"grant", GRANT}, {"group", GROUP}, {"handler", HANDLER}, @@ -119,7 +122,6 @@ static ScanKeyword ScanKeywords[] = { {"insert", INSERT}, {"instead", INSTEAD}, {"intersect", INTERSECT}, - {"interval", INTERVAL}, {"into", INTO}, {"is", IS}, @@ -143,6 +145,7 @@ static ScanKeyword ScanKeywords[] = { {"maxvalue", MAXVALUE}, {"minute", MINUTE_P}, {"minvalue", MINVALUE}, + {"mode", MODE}, {"month", MONTH_P}, {"move", MOVE}, {"names", NAMES}, @@ -199,8 +202,10 @@ static ScanKeyword ScanKeywords[] = { {"select", SELECT}, {"sequence", SEQUENCE}, {"serial", SERIAL}, + {"serializable", SERIALIZABLE}, {"set", SET}, {"setof", SETOF}, + {"share", SHARE}, {"show", SHOW}, {"start", START}, {"statement", STATEMENT}, @@ -221,6 +226,7 @@ static ScanKeyword ScanKeywords[] = { {"trigger", TRIGGER}, {"trim", TRIM}, {"true", TRUE_P}, + {"truncate", TRUNCATE}, {"trusted", TRUSTED}, {"type", TYPE_P}, {"union", UNION}, diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 64270e86b2f1b9ec966a83c5cfbe4c3b6032274f..6151a6328d848eb70532a786800ad7051841df70 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -727,7 +727,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim OFFSET, OIDS, OPERATOR, PASSWORD, PROCEDURAL, RENAME, RESET, RETURNS, ROW, RULE, SERIAL, SEQUENCE, SETOF, SHARE, SHOW, START, STATEMENT, STDIN, STDOUT, - TRUSTED, + TRUNCATE, TRUSTED, UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION /* Special keywords, not in the query language - see the "lex" file */ @@ -777,7 +777,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim %type <str> update_target_el opt_id relation_name database_name %type <str> access_method attr_name class index_name name func_name %type <str> file_name AexprConst ParamNo TypeId -%type <str> in_expr_nodes a_expr b_expr +%type <str> in_expr_nodes a_expr b_expr TruncateStmt %type <str> opt_indirection expr_list extract_list extract_arg %type <str> position_list substr_list substr_from %type <str> trim_list in_expr substr_for attr attrs @@ -881,6 +881,7 @@ stmt: AddAttrStmt { output_statement($1, 0); } | ClusterStmt { output_statement($1, 0); } | DefineStmt { output_statement($1, 0); } | DestroyStmt { output_statement($1, 0); } + | TruncateStmt { output_statement($1, 0); } | DropPLangStmt { output_statement($1, 0); } | DropTrigStmt { output_statement($1, 0); } | DropUserStmt { output_statement($1, 0); } @@ -1948,7 +1949,17 @@ DestroyStmt: DROP TABLE relation_name_list } ; - +/***************************************************************************** + * + * QUERY: + * truncate table relname + * + *****************************************************************************/ +TruncateStmt: TRUNCATE TABLE relation_name + { + $$ = cat2_str(make1_str("drop table"), $3); + } + ; /***************************************************************************** * @@ -4283,9 +4294,11 @@ ColId: ident { $$ = $1; } | INSENSITIVE { $$ = make1_str("insensitive"); } | INSTEAD { $$ = make1_str("instead"); } | ISNULL { $$ = make1_str("isnull"); } + | ISOLATION { $$ = make1_str("isolation"); } | KEY { $$ = make1_str("key"); } | LANGUAGE { $$ = make1_str("language"); } | LANCOMPILER { $$ = make1_str("lancompiler"); } + | LEVEL { $$ = make1_str("level"); } | LOCATION { $$ = make1_str("location"); } | MATCH { $$ = make1_str("match"); } | MAXVALUE { $$ = make1_str("maxvalue"); }