From a6b5765c7eefab54c5d0321e69a342e86d9c1a0f Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Tue, 4 Sep 2007 10:02:29 +0000 Subject: [PATCH] Synced parser and keyword list. --- src/interfaces/ecpg/ChangeLog | 4 + src/interfaces/ecpg/preproc/keywords.c | 9 +- src/interfaces/ecpg/preproc/pgc.l | 4 +- src/interfaces/ecpg/preproc/preproc.y | 150 +++++++++++++----- .../ecpg/test/expected/thread-thread.c | 2 +- .../test/expected/thread-thread_implicit.c | 2 +- 6 files changed, 123 insertions(+), 48 deletions(-) diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 0a8dce301a..b045dc8b58 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -2233,5 +2233,9 @@ Wed, 22 Aug 2007 08:41:33 +0200 Wed, 29 Aug 2007 15:41:58 +0200 - Fixed bug in Informix define handling. + +Tue, 04 Sep 2007 11:13:55 +0200 + + - Synced parser and keyword list. - Set ecpg library version to 6.0. - Set ecpg version to 4.4. diff --git a/src/interfaces/ecpg/preproc/keywords.c b/src/interfaces/ecpg/preproc/keywords.c index 5c87e5cd13..4145c57738 100644 --- a/src/interfaces/ecpg/preproc/keywords.c +++ b/src/interfaces/ecpg/preproc/keywords.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.81 2007/08/22 08:20:58 meskes Exp $ + * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.82 2007/09/04 10:02:29 meskes Exp $ * *------------------------------------------------------------------------- */ @@ -86,7 +86,7 @@ static const ScanKeyword ScanPGSQLKeywords[] = { {"commit", COMMIT}, {"committed", COMMITTED}, {"concurrently", CONCURRENTLY}, - {"concurrently", CONCURRENTLY}, + {"configuration", CONFIGURATION}, {"connection", CONNECTION}, {"constraint", CONSTRAINT}, {"constraints", CONSTRAINTS}, @@ -123,6 +123,7 @@ static const ScanKeyword ScanPGSQLKeywords[] = { {"delimiter", DELIMITER}, {"delimiters", DELIMITERS}, {"desc", DESC}, + {"dictionary", DICTIONARY}, {"disable", DISABLE_P}, {"discard", DISCARD}, {"distinct", DISTINCT}, @@ -217,6 +218,7 @@ static const ScanKeyword ScanPGSQLKeywords[] = { {"location", LOCATION}, {"lock", LOCK_P}, {"login", LOGIN_P}, + {"mapping", MAPPING}, {"match", MATCH}, {"maxvalue", MAXVALUE}, {"minute", MINUTE_P}, @@ -265,6 +267,7 @@ static const ScanKeyword ScanPGSQLKeywords[] = { {"overlaps", OVERLAPS}, {"owned", OWNED}, {"owner", OWNER}, + {"parser", PARSER}, {"partial", PARTIAL}, {"password", PASSWORD}, {"placing", PLACING}, @@ -307,6 +310,7 @@ static const ScanKeyword ScanPGSQLKeywords[] = { {"savepoint", SAVEPOINT}, {"schema", SCHEMA}, {"scroll", SCROLL}, + {"search", SEARCH}, {"second", SECOND_P}, {"security", SECURITY}, {"select", SELECT}, @@ -342,6 +346,7 @@ static const ScanKeyword ScanPGSQLKeywords[] = { {"temp", TEMP}, {"template", TEMPLATE}, {"temporary", TEMPORARY}, + {"text", TEXT_P}, {"then", THEN}, {"time", TIME}, {"timestamp", TIMESTAMP}, diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index acfd618ed5..24353dd915 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -12,7 +12,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.155 2007/08/29 13:58:13 meskes Exp $ + * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.156 2007/09/04 10:02:29 meskes Exp $ * *------------------------------------------------------------------------- */ @@ -1152,7 +1152,7 @@ lex_init(void) /* initialize literal buffer to a reasonable but expansible size */ if (literalbuf == NULL) { - literalalloc = 128; + literalalloc = 1024; literalbuf = (char *) malloc(literalalloc); } startlit(); diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index ffbb7f7844..9166bb3e83 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.350 2007/08/22 08:20:58 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.351 2007/09/04 10:02:29 meskes Exp $ */ /* Copyright comment */ %{ @@ -421,14 +421,14 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu CACHE CALLED CASCADE CASCADED CASE CAST CHAIN CHAR_P CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE CLUSTER COALESCE COLLATE COLUMN COMMENT COMMIT - COMMITTED CONCURRENTLY CONNECTION CONSTRAINT CONSTRAINTS + COMMITTED CONCURRENTLY CONFIGURATION CONNECTION CONSTRAINT CONSTRAINTS CONTENT_P CONVERSION_P CONVERT COPY COST CREATE CREATEDB CREATEROLE CREATEUSER CROSS CSV CURRENT_P CURRENT_DATE CURRENT_ROLE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE DATABASE DAY_P DEALLOCATE DEC DECIMAL_P DECLARE DEFAULT DEFAULTS - DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS - DESC DISABLE_P DISCARD DISTINCT DO DOCUMENT_P DOMAIN_P DOUBLE_P DROP + DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DESC + DICTIONARY DISABLE_P DISCARD DISTINCT DO DOCUMENT_P DOMAIN_P DOUBLE_P DROP EACH ELSE ENABLE_P ENCODING ENCRYPTED END_P ENUM_P ESCAPE EXCEPT EXCLUSIVE EXCLUDING EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT @@ -453,7 +453,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP LOCATION LOCK_P LOGIN_P - MATCH MAXVALUE MINUTE_P MINVALUE MODE MONTH_P MOVE + MAPPING MATCH MAXVALUE MINUTE_P MINVALUE MODE MONTH_P MOVE NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NO NOCREATEDB NOCREATEROLE NOCREATEUSER NOINHERIT NOLOGIN_P NONE NOSUPERUSER @@ -462,7 +462,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu OBJECT_P OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR ORDER OUT_P OUTER_P OVERLAPS OVERLAY OWNED OWNER - PARTIAL PASSWORD PLACING PLANS POSITION + PARSER PARTIAL PASSWORD PLACING PLANS POSITION PRECISION PRESERVE PREPARE PREPARED PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE @@ -472,13 +472,13 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu REPEATABLE REPLACE REPLICA RESET RESTART RESTRICT RETURNING RETURNS REVOKE RIGHT ROLE ROLLBACK ROW ROWS RULE - SAVEPOINT SCHEMA SCROLL SECOND_P SECURITY SELECT SEQUENCE + SAVEPOINT SCHEMA SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE SERIALIZABLE SESSION SESSION_USER SET SETOF SHARE SHOW SIMILAR SIMPLE SMALLINT SOME STABLE STANDALONE_P START STATEMENT STATISTICS STDIN STDOUT STORAGE STRICT_P STRIP_P SUBSTRING SUPERUSER_P SYMMETRIC SYSID SYSTEM_P - TABLE TABLESPACE TEMP TEMPLATE TEMPORARY THEN TIME TIMESTAMP TO + TABLE TABLESPACE TEMP TEMPLATE TEMPORARY TEXT_P THEN TIME TIMESTAMP TO TRAILING TRANSACTION TREAT TRIGGER TRIM TRUE_P TRUNCATE TRUSTED TYPE_P UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLISTEN UNTIL @@ -615,7 +615,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu %type handler_name any_name_list any_name opt_as insert_column_list %type columnref values_clause AllConstVar prep_type_clause ExecuteStmt %type insert_column_item DropRuleStmt ctext_expr execute_param_clause -%type createfunc_opt_item set_rest var_list_or_default alter_rel_cmd +%type createfunc_opt_item set_rest alter_rel_cmd %type CreateFunctionStmt createfunc_opt_list func_table %type DropUserStmt copy_from copy_opt_list copy_opt_item %type opt_oids TableLikeClause key_action opt_definition @@ -642,7 +642,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu %type var_declaration type_declaration single_vt_declaration %type ECPGSetAutocommit on_off variable_declarations ECPGDescribe %type ECPGAllocateDescr ECPGDeallocateDescr symbol opt_output -%type ECPGGetDescriptorHeader ECPGColLabel +%type ECPGGetDescriptorHeader ECPGColLabel SetResetClause AlterUserSetStmt %type reserved_keyword unreserved_keyword ecpg_interval opt_ecpg_using %type col_name_keyword precision opt_scale ECPGExecuteImmediateStmt %type ECPGTypeName using_list ECPGColLabelCommon UsingConst @@ -664,7 +664,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu %type CreateOpFamilyStmt AlterOpFamilyStmt create_as_target %type xml_attributes xml_attribute_list document_or_content xml_whitespace_option %type opt_xml_root_standalone xml_root_version xml_attribute_el -%type where_or_current_clause +%type where_or_current_clause AlterTSConfigurationStmt AlterTSDictionaryStmt %type s_struct_union_symbol @@ -728,7 +728,10 @@ stmt: AlterDatabaseStmt { output_statement($1, 0, ECPGst_normal); } | AlterTableStmt { output_statement($1, 0, ECPGst_normal); } | AlterRoleSetStmt { output_statement($1, 0, ECPGst_normal); } | AlterRoleStmt { output_statement($1, 0, ECPGst_normal); } + | AlterTSConfigurationStmt { output_statement($1, 0, ECPGst_normal); } + | AlterTSDictionaryStmt { output_statement($1, 0, ECPGst_normal); } | AlterUserStmt { output_statement($1, 0, ECPGst_normal); } + | AlterUserSetStmt { output_statement($1, 0, ECPGst_normal); } | AnalyzeStmt { output_statement($1, 0, ECPGst_normal); } | CheckPointStmt { output_statement($1, 0, ECPGst_normal); } | ClosePortalStmt @@ -1060,9 +1063,7 @@ CreateUserStmt: { $$ = cat_str(4, make_str("alter role"), $3, $4, $5); } ; - AlterRoleSetStmt: ALTER ROLE RoleId SET set_rest - { $$ = cat_str(4, make_str("alter role"), $3, make_str("set"), $5); } - | ALTER ROLE RoleId VariableResetStmt + AlterRoleSetStmt: ALTER ROLE RoleId SetResetClause { $$ = cat_str(3, make_str("alter role"), $3, $4); } ; @@ -1075,9 +1076,7 @@ CreateUserStmt: AlterUserStmt: ALTER USER RoleId opt_with OptRoleList { $$ = cat_str(4, make_str("alter user"), $3, $4, $5); }; - AlterRoleSetStmt: ALTER USER RoleId SET set_rest - { $$ = cat_str(4, make_str("alter user"), $3, make_str("set"), $5); } - | ALTER USER RoleId VariableResetStmt + AlterUserSetStmt: ALTER USER RoleId SetResetClause { $$ = cat_str(3, make_str("alter user"), $3, $4); } ; @@ -1193,10 +1192,18 @@ VariableSetStmt: SET set_rest { $$ = cat2_str(make_str("set session"), $3 ); } ; -set_rest: var_name TO var_list_or_default +set_rest: /* Generic SET syntaxes: */ + var_name TO var_list { $$ = cat_str(3, $1, make_str("to"), $3); } - | var_name "=" var_list_or_default + | var_name "=" var_list { $$ = cat_str(3, $1, make_str("="), $3); } + | var_name TO DEFAULT + { $$ = cat2_str($1, make_str("to default")); } + | var_name "=" DEFAULT + { $$ = cat2_str($1, make_str("= default")); } + | var_name FROM CURRENT_P + { $$ = cat2_str($1, make_str("from current")); } + /* Special syntaxes mandated by SQL standard: */ | TIME ZONE zone_value { $$ = cat2_str(make_str("time zone"), $3); } | TRANSACTION transaction_mode_list @@ -1220,12 +1227,6 @@ var_name: ECPGColId { $$ = $1; } ; -var_list_or_default: var_list - { $$ = $1; } - | DEFAULT - { $$ = make_str("default"); } - ; - var_list: var_value { $$ = $1; } | var_list ',' var_value @@ -1301,6 +1302,12 @@ VariableResetStmt: RESET var_name { $$ = make_str("reset all"); } ; +/* SetResetClause allows SET or RESET without LOCAL */ +SetResetClause: + SET set_rest { $$ = cat2_str(make_str("set"), $2); } + | VariableResetStmt { $$ = $1; } + ; + ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode { $$ = cat_str(3, make_str("set constraints"), $3, $4); } ; @@ -2080,6 +2087,14 @@ DefineStmt: CREATE AGGREGATE func_name aggr_args definition { $$ = cat_str(5, make_str("create type"), $3, make_str("as ("), $6, make_str(")")); } | CREATE TYPE_P any_name AS ENUM_P '(' enum_val_list ')' { $$ = cat_str(5, make_str("create type"), $3, make_str("as enum ("), $7, make_str(")")); } + | CREATE TEXT_P SEARCH PARSER any_name definition + { $$ = cat_str(3, make_str("create text search parser"), $5, $6); } + | CREATE TEXT_P SEARCH DICTIONARY any_name definition + { $$ = cat_str(3, make_str("create text search dictionary"), $5, $6); } + | CREATE TEXT_P SEARCH TEMPLATE any_name definition + { $$ = cat_str(3, make_str("create text search template"), $5, $6); } + | CREATE TEXT_P SEARCH CONFIGURATION any_name definition + { $$ = cat_str(3, make_str("create text search configuration"), $5, $6); } ; definition: '(' def_list ')' @@ -2219,14 +2234,18 @@ DropStmt: DROP drop_type IF_P EXISTS any_name_list opt_drop_behavior { $$ = cat_str(4, make_str("drop"), $2, $3, $4); } ; -drop_type: TABLE { $$ = make_str("table"); } - | SEQUENCE { $$ = make_str("sequence"); } - | VIEW { $$ = make_str("view"); } - | INDEX { $$ = make_str("index"); } - | TYPE_P { $$ = make_str("type"); } - | DOMAIN_P { $$ = make_str("domain"); } - | CONVERSION_P { $$ = make_str("conversion"); } - | SCHEMA { $$ = make_str("schema"); } +drop_type: TABLE { $$ = make_str("table"); } + | SEQUENCE { $$ = make_str("sequence"); } + | VIEW { $$ = make_str("view"); } + | INDEX { $$ = make_str("index"); } + | TYPE_P { $$ = make_str("type"); } + | DOMAIN_P { $$ = make_str("domain"); } + | CONVERSION_P { $$ = make_str("conversion"); } + | SCHEMA { $$ = make_str("schema"); } + | TEXT_P SEARCH PARSER { $$ = make_str("text search parser"); } + | TEXT_P SEARCH DICTIONARY { $$ = make_str("text search dictionary"); } + | TEXT_P SEARCH TEMPLATE { $$ = make_str("text search template"); } + | TEXT_P SEARCH CONFIGURATION { $$ = make_str("text search configuration"); } ; any_name_list: any_name @@ -2379,6 +2398,14 @@ CommentStmt: COMMENT ON comment_type name IS comment_text { $$ = cat_str(6, make_str("comment on cast ("), $5, make_str("as"), $7, make_str(") is"), $10); } | COMMENT ON opt_procedural LANGUAGE any_name IS comment_text { $$ = cat_str(6, make_str("comment on"), $3, make_str("language"), $5, make_str("is"), $7); } + | COMMENT ON TEXT_P SEARCH PARSER any_name IS comment_text + { $$ = cat_str(4, make_str("comment on test search parser"), $6, make_str("is"), $8); } + | COMMENT ON TEXT_P SEARCH DICTIONARY any_name IS comment_text + { $$ = cat_str(4, make_str("comment on test search dictionary"), $6, make_str("is"), $8); } + | COMMENT ON TEXT_P SEARCH TEMPLATE any_name IS comment_text + { $$ = cat_str(4, make_str("comment on test search template"), $6, make_str("is"), $8); } + | COMMENT ON TEXT_P SEARCH CONFIGURATION any_name IS comment_text + { $$ = cat_str(4, make_str("comment on test search configuration"), $6, make_str("is"), $8); } ; comment_type: COLUMN { $$ = make_str("column"); } @@ -2654,7 +2681,10 @@ common_func_opt_item: { $$ = cat2_str(make_str("cost"), $2); } | ROWS NumConst { $$ = cat2_str(make_str("rows"), $2); } + | SetResetClause + { $$ = $1; } ; + createfunc_opt_item: AS func_as { $$ = cat2_str(make_str("as"), $2); } | LANGUAGE ColId_or_Sconst @@ -2783,8 +2813,8 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name { $$ = cat_str(4, make_str("alter conversion"), $3, make_str("rename to"), $6); } | ALTER DATABASE database_name RENAME TO database_name { $$ = cat_str(4, make_str("alter database"), $3, make_str("rename to"), $6); } - | ALTER FUNCTION func_name func_args RENAME TO name - { $$ = cat_str(5, make_str("alter function"), $3, $4, make_str("rename to"), $7); } + | ALTER FUNCTION function_with_argtypes RENAME TO name + { $$ = cat_str(4, make_str("alter function"), $3, make_str("rename to"), $6); } | ALTER GROUP_P RoleId RENAME TO RoleId { $$ = cat_str(4, make_str("alter group"), $3, make_str("rename to"), $6); } | ALTER opt_procedural LANGUAGE name RENAME TO name @@ -2811,6 +2841,14 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name { $$ = cat_str(4, make_str("alter user"), $3, make_str("rename to"), $6); } | ALTER TABLESPACE name RENAME TO name { $$ = cat_str(4, make_str("alter tablespace"), $3, make_str("rename to"), $6); } + | ALTER TEXT_P SEARCH PARSER any_name RENAME TO name + { $$ = cat_str(4, make_str("alter text search parser"), $5, make_str("rename to"), $8); } + | ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name + { $$ = cat_str(4, make_str("alter text search dictionary"), $5, make_str("rename to"), $8); } + | ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name + { $$ = cat_str(4, make_str("alter text search template"), $5, make_str("rename to"), $8); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name + { $$ = cat_str(4, make_str("alter text search configuration"), $5, make_str("rename to"), $8); } ; opt_column: COLUMN { $$ = make_str("column"); } @@ -2828,8 +2866,8 @@ AlterObjectSchemaStmt: { $$ = cat_str(5, make_str("alter aggregate"), $3, $4, make_str("set schema"), $7); } | ALTER DOMAIN_P any_name SET SCHEMA name { $$ = cat_str(4, make_str("alter domain"), $3, make_str("set schema"), $6); } - | ALTER FUNCTION func_name func_args SET SCHEMA name - { $$ = cat_str(5, make_str("alter function"), $3, $4, make_str("set schema"), $7); } + | ALTER FUNCTION function_with_argtypes SET SCHEMA name + { $$ = cat_str(4, make_str("alter function"), $3, make_str("set schema"), $6); } | ALTER SEQUENCE relation_expr SET SCHEMA name { $$ = cat_str(4, make_str("alter sequence"), $3, make_str("set schema"), $6); } | ALTER TABLE relation_expr SET SCHEMA name @@ -2852,8 +2890,8 @@ AlterOwnerStmt: ALTER AGGREGATE func_name aggr_args OWNER TO RoleId { $$ = cat_str(4, make_str("alter database"), $3, make_str("owner to"), $6); } | ALTER DOMAIN_P database_name OWNER TO RoleId { $$ = cat_str(4, make_str("alter domain"), $3, make_str("owner to"), $6); } - | ALTER FUNCTION func_name func_args OWNER TO RoleId - { $$ = cat_str(5, make_str("alter function"), $3, $4, make_str("owner to"), $7); } + | ALTER FUNCTION function_with_argtypes OWNER TO RoleId + { $$ = cat_str(4, make_str("alter function"), $3, make_str("owner to"), $6); } | ALTER opt_procedural LANGUAGE name OWNER TO RoleId { $$ = cat_str(6, make_str("alter"), $2, make_str("language"), $4, make_str("owner to"), $7); } | ALTER OPERATOR any_operator '(' oper_argtypes ')' OWNER TO RoleId @@ -2868,6 +2906,10 @@ AlterOwnerStmt: ALTER AGGREGATE func_name aggr_args OWNER TO RoleId { $$ = cat_str(4, make_str("alter type"), $3, make_str("owner to"), $6); } | ALTER TABLESPACE name OWNER TO RoleId { $$ = cat_str(4, make_str("alter tablespace"), $3, make_str("owner to"), $6); } + | ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleId + { $$ = cat_str(4, make_str("alter text search dictionary"), $5, make_str("owner to"), $8); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleId + { $$ = cat_str(4, make_str("alter text search configuration"), $5, make_str("owner to"), $8); } ; @@ -3107,9 +3149,7 @@ AlterDatabaseStmt: ALTER DATABASE database_name opt_with alterdb_opt_list { $$ = cat_str(4, make_str("alter database"), $3, $4, $5); } ; -AlterDatabaseSetStmt: ALTER DATABASE database_name SET set_rest - { $$ = cat_str(4, make_str("alter database"), $3, make_str("set"), $5); } - | ALTER DATABASE database_name VariableResetStmt +AlterDatabaseSetStmt: ALTER DATABASE database_name SetResetClause { $$ = cat_str(3, make_str("alter database"), $3, $4); } ; @@ -3165,6 +3205,26 @@ opt_as: AS {$$ = make_str("as"); } | /* EMPTY */ {$$ = EMPTY; } ; +AlterTSDictionaryStmt: + ALTER TEXT_P SEARCH DICTIONARY any_name definition + { $$ = cat_str(3, make_str("alter text search dictionary"), $5, $6); } + ; + +AlterTSConfigurationStmt: + ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list WITH any_name_list + { $$ = cat_str(6, make_str("alter text search configuration"), $5, make_str("add mapping for"), $9, make_str("with"), $11); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list WITH any_name_list + { $$ = cat_str(6, make_str("alter text search configuration"), $5, make_str("alter mapping for"), $9, make_str("with"), $11); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name WITH any_name + { $$ = cat_str(6, make_str("alter text search configuration"), $5, make_str("alter mapping replace"), $9, make_str("with"), $11); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name WITH any_name + { $$ = cat_str(8, make_str("alter text search configuration"), $5, make_str("alter mapping for"), $9, make_str("replace"), $11, make_str("with"), $13); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list + { $$ = cat_str(4, make_str("alter text search configuration"), $5, make_str("drop mapping for"), $9); } + | ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list + { $$ = cat_str(4, make_str("alter text search configuration"), $5, make_str("drop mapping if exists for"), $11); } + ; + CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR StringConst TO StringConst FROM any_name @@ -6371,6 +6431,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | COMMIT { $$ = make_str("commit"); } | COMMITTED { $$ = make_str("committed"); } | CONCURRENTLY { $$ = make_str("concurrently"); } + | CONFIGURATION { $$ = make_str("configuration"); } /* | CONNECTION { $$ = make_str("connection"); }*/ | CONSTRAINTS { $$ = make_str("constraints"); } | CONTENT_P { $$ = make_str("content"); } @@ -6392,6 +6453,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | DELETE_P { $$ = make_str("delete"); } | DELIMITER { $$ = make_str("delimiter"); } | DELIMITERS { $$ = make_str("delimiters"); } + | DICTIONARY { $$ = make_str("dictionary"); } | DISABLE_P { $$ = make_str("disable"); } | DISCARD { $$ = make_str("discard"); } | DOCUMENT_P { $$ = make_str("document"); } @@ -6447,6 +6509,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | LOCATION { $$ = make_str("location"); } | LOCK_P { $$ = make_str("lock"); } | LOGIN_P { $$ = make_str("login"); } + | MAPPING { $$ = make_str("mapping"); } | MATCH { $$ = make_str("match"); } | MAXVALUE { $$ = make_str("maxvalue"); } /* | MINUTE_P { $$ = make_str("minute"); }*/ @@ -6475,6 +6538,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | OPTION { $$ = make_str("option"); } | OWNED { $$ = make_str("owned"); } | OWNER { $$ = make_str("owner"); } + | PARSER { $$ = make_str("parser"); } | PARTIAL { $$ = make_str("partial"); } | PASSWORD { $$ = make_str("password"); } | PLANS { $$ = make_str("plans"); } @@ -6508,6 +6572,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | SAVEPOINT { $$ = make_str("savepoint"); } | SCHEMA { $$ = make_str("schema"); } | SCROLL { $$ = make_str("scroll"); } + | SEARCH { $$ = make_str("search"); } /* | SECOND_P { $$ = make_str("second"); }*/ | SEQUENCE { $$ = make_str("sequence"); } | SERIALIZABLE { $$ = make_str("serializable"); } @@ -6533,6 +6598,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); } | TEMP { $$ = make_str("temp"); } | TEMPLATE { $$ = make_str("template"); } | TEMPORARY { $$ = make_str("temporary"); } + | TEXT_P { $$ = make_str("text"); } | TRANSACTION { $$ = make_str("transaction"); } | TRIGGER { $$ = make_str("trigger"); } | TRUNCATE { $$ = make_str("truncate"); } diff --git a/src/interfaces/ecpg/test/expected/thread-thread.c b/src/interfaces/ecpg/test/expected/thread-thread.c index 8916998b50..183764ade9 100644 --- a/src/interfaces/ecpg/test/expected/thread-thread.c +++ b/src/interfaces/ecpg/test/expected/thread-thread.c @@ -76,7 +76,7 @@ int main(int argc, char *argv[]) { ECPGtrans(__LINE__, NULL, "commit");} #line 48 "thread.pgc" - { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread TEXT not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);} + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread text not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);} #line 53 "thread.pgc" { ECPGtrans(__LINE__, NULL, "commit");} diff --git a/src/interfaces/ecpg/test/expected/thread-thread_implicit.c b/src/interfaces/ecpg/test/expected/thread-thread_implicit.c index 4f46f98b6d..697a104f31 100644 --- a/src/interfaces/ecpg/test/expected/thread-thread_implicit.c +++ b/src/interfaces/ecpg/test/expected/thread-thread_implicit.c @@ -77,7 +77,7 @@ int main(int argc, char *argv[]) { ECPGtrans(__LINE__, NULL, "commit");} #line 49 "thread_implicit.pgc" - { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread TEXT not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);} + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread text not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);} #line 54 "thread_implicit.pgc" { ECPGtrans(__LINE__, NULL, "commit");} -- 2.40.0