Synced parser and keyword list.
authorMichael Meskes <meskes@postgresql.org>
Tue, 4 Sep 2007 10:02:29 +0000 (10:02 +0000)
committerMichael Meskes <meskes@postgresql.org>
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  <str>   handler_name any_name_list any_name opt_as insert_column_list
 %type  <str>   columnref values_clause AllConstVar prep_type_clause ExecuteStmt
 %type  <str>   insert_column_item DropRuleStmt ctext_expr execute_param_clause 
-%type  <str>   createfunc_opt_item set_rest var_list_or_default alter_rel_cmd
+%type  <str>   createfunc_opt_item set_rest alter_rel_cmd
 %type  <str>   CreateFunctionStmt createfunc_opt_list func_table
 %type  <str>   DropUserStmt copy_from copy_opt_list copy_opt_item
 %type  <str>   opt_oids TableLikeClause key_action opt_definition
@@ -642,7 +642,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu
 %type  <str>   var_declaration type_declaration single_vt_declaration
 %type  <str>   ECPGSetAutocommit on_off variable_declarations ECPGDescribe
 %type  <str>   ECPGAllocateDescr ECPGDeallocateDescr symbol opt_output
-%type  <str>   ECPGGetDescriptorHeader ECPGColLabel 
+%type  <str>   ECPGGetDescriptorHeader ECPGColLabel SetResetClause AlterUserSetStmt
 %type  <str>   reserved_keyword unreserved_keyword ecpg_interval opt_ecpg_using
 %type  <str>   col_name_keyword precision opt_scale ECPGExecuteImmediateStmt
 %type  <str>   ECPGTypeName using_list ECPGColLabelCommon UsingConst 
@@ -664,7 +664,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu
 %type  <str>   CreateOpFamilyStmt AlterOpFamilyStmt create_as_target
 %type  <str>   xml_attributes xml_attribute_list document_or_content xml_whitespace_option
 %type  <str>   opt_xml_root_standalone xml_root_version xml_attribute_el 
-%type  <str>   where_or_current_clause
+%type  <str>   where_or_current_clause AlterTSConfigurationStmt AlterTSDictionaryStmt
 
 %type  <struct_union> 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");}