Synced parser and keyword list.
authorMichael Meskes
Tue, 4 Sep 2007 10:02:29 +0000 (10:02 +0000)
committerMichael Meskes
Tue, 4 Sep 2007 10:02:29 +0000 (10:02 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/preproc/keywords.c
src/interfaces/ecpg/preproc/pgc.l
src/interfaces/ecpg/preproc/preproc.y
src/interfaces/ecpg/test/expected/thread-thread.c
src/interfaces/ecpg/test/expected/thread-thread_implicit.c

index 0a8dce301a2a62f4c1671733ad7719b4e15bc000..b045dc8b58d6833fdfd1a63abd65c01de05edd12 100644 (file)
@@ -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.
index 5c87e5cd13b21167ef80cf94b281c213f2f2433d..4145c577386b3f6d77a71ae807d2fefc08e335b3 100644 (file)
@@ -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},
index acfd618ed51304a8f6918cbec1f8bbf192e71896..24353dd915f1529bbc677802e6b9104711635a4e 100644 (file)
@@ -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();
index ffbb7f7844dcd296ffd4e32027ad85048ad4906d..9166bb3e83b36eaad079e59ebea28dde956d4ad4 100644 (file)
@@ -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"); }
index 8916998b50d0dc8cecdf8671ec2ec122426ed111..183764ade91b03d855d4996e2a195507524b6edf 100644 (file)
@@ -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");}
index 4f46f98b6d8d4b1c7f90a72c03031e346d48e923..697a104f319c6ef3fcfd184263d29a597bdbc519 100644 (file)
@@ -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");}