summaryrefslogtreecommitdiff
path: root/src/backend/tcop/utility.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/tcop/utility.c')
-rw-r--r--src/backend/tcop/utility.c118
1 files changed, 117 insertions, 1 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 77e40674df..c38647db32 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.284 2007/07/17 05:02:02 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.285 2007/08/21 01:11:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -355,6 +355,8 @@ check_xact_readonly(Node *parsetree)
case T_TruncateStmt:
case T_DropOwnedStmt:
case T_ReassignOwnedStmt:
+ case T_AlterTSDictionaryStmt:
+ case T_AlterTSConfigurationStmt:
ereport(ERROR,
(errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
errmsg("transaction is read-only")));
@@ -661,6 +663,26 @@ ProcessUtility(Node *parsetree,
stmt->missing_ok);
break;
+ case OBJECT_TSPARSER:
+ RemoveTSParser(names, stmt->behavior,
+ stmt->missing_ok);
+ break;
+
+ case OBJECT_TSDICTIONARY:
+ RemoveTSDictionary(names, stmt->behavior,
+ stmt->missing_ok);
+ break;
+
+ case OBJECT_TSTEMPLATE:
+ RemoveTSTemplate(names, stmt->behavior,
+ stmt->missing_ok);
+ break;
+
+ case OBJECT_TSCONFIGURATION:
+ RemoveTSConfiguration(names, stmt->behavior,
+ stmt->missing_ok);
+ break;
+
default:
elog(ERROR, "unrecognized drop object type: %d",
(int) stmt->removeType);
@@ -832,6 +854,22 @@ ProcessUtility(Node *parsetree,
Assert(stmt->args == NIL);
DefineType(stmt->defnames, stmt->definition);
break;
+ case OBJECT_TSPARSER:
+ Assert(stmt->args == NIL);
+ DefineTSParser(stmt->defnames, stmt->definition);
+ break;
+ case OBJECT_TSDICTIONARY:
+ Assert(stmt->args == NIL);
+ DefineTSDictionary(stmt->defnames, stmt->definition);
+ break;
+ case OBJECT_TSTEMPLATE:
+ Assert(stmt->args == NIL);
+ DefineTSTemplate(stmt->defnames, stmt->definition);
+ break;
+ case OBJECT_TSCONFIGURATION:
+ Assert(stmt->args == NIL);
+ DefineTSConfiguration(stmt->defnames, stmt->definition);
+ break;
default:
elog(ERROR, "unrecognized define stmt type: %d",
(int) stmt->kind);
@@ -1221,6 +1259,14 @@ ProcessUtility(Node *parsetree,
RemoveOpFamily((RemoveOpFamilyStmt *) parsetree);
break;
+ case T_AlterTSDictionaryStmt:
+ AlterTSDictionary((AlterTSDictionaryStmt *) parsetree);
+ break;
+
+ case T_AlterTSConfigurationStmt:
+ AlterTSConfiguration((AlterTSConfigurationStmt *) parsetree);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d",
(int) nodeTag(parsetree));
@@ -1525,6 +1571,18 @@ CreateCommandTag(Node *parsetree)
case OBJECT_SCHEMA:
tag = "DROP SCHEMA";
break;
+ case OBJECT_TSPARSER:
+ tag = "DROP TEXT SEARCH PARSER";
+ break;
+ case OBJECT_TSDICTIONARY:
+ tag = "DROP TEXT SEARCH DICTIONARY";
+ break;
+ case OBJECT_TSTEMPLATE:
+ tag = "DROP TEXT SEARCH TEMPLATE";
+ break;
+ case OBJECT_TSCONFIGURATION:
+ tag = "DROP TEXT SEARCH CONFIGURATION";
+ break;
default:
tag = "???";
}
@@ -1591,6 +1649,18 @@ CreateCommandTag(Node *parsetree)
case OBJECT_VIEW:
tag = "ALTER VIEW";
break;
+ case OBJECT_TSPARSER:
+ tag = "ALTER TEXT SEARCH PARSER";
+ break;
+ case OBJECT_TSDICTIONARY:
+ tag = "ALTER TEXT SEARCH DICTIONARY";
+ break;
+ case OBJECT_TSTEMPLATE:
+ tag = "ALTER TEXT SEARCH TEMPLATE";
+ break;
+ case OBJECT_TSCONFIGURATION:
+ tag = "ALTER TEXT SEARCH CONFIGURATION";
+ break;
default:
tag = "???";
break;
@@ -1618,6 +1688,18 @@ CreateCommandTag(Node *parsetree)
case OBJECT_TYPE:
tag = "ALTER TYPE";
break;
+ case OBJECT_TSPARSER:
+ tag = "ALTER TEXT SEARCH PARSER";
+ break;
+ case OBJECT_TSDICTIONARY:
+ tag = "ALTER TEXT SEARCH DICTIONARY";
+ break;
+ case OBJECT_TSTEMPLATE:
+ tag = "ALTER TEXT SEARCH TEMPLATE";
+ break;
+ case OBJECT_TSCONFIGURATION:
+ tag = "ALTER TEXT SEARCH CONFIGURATION";
+ break;
default:
tag = "???";
break;
@@ -1663,6 +1745,12 @@ CreateCommandTag(Node *parsetree)
case OBJECT_TYPE:
tag = "ALTER TYPE";
break;
+ case OBJECT_TSCONFIGURATION:
+ tag = "ALTER TEXT SEARCH CONFIGURATION";
+ break;
+ case OBJECT_TSDICTIONARY:
+ tag = "ALTER TEXT SEARCH DICTIONARY";
+ break;
default:
tag = "???";
break;
@@ -1722,6 +1810,18 @@ CreateCommandTag(Node *parsetree)
case OBJECT_TYPE:
tag = "CREATE TYPE";
break;
+ case OBJECT_TSPARSER:
+ tag = "CREATE TEXT SEARCH PARSER";
+ break;
+ case OBJECT_TSDICTIONARY:
+ tag = "CREATE TEXT SEARCH DICTIONARY";
+ break;
+ case OBJECT_TSTEMPLATE:
+ tag = "CREATE TEXT SEARCH TEMPLATE";
+ break;
+ case OBJECT_TSCONFIGURATION:
+ tag = "CREATE TEXT SEARCH CONFIGURATION";
+ break;
default:
tag = "???";
}
@@ -1949,6 +2049,14 @@ CreateCommandTag(Node *parsetree)
tag = "DROP OPERATOR FAMILY";
break;
+ case T_AlterTSDictionaryStmt:
+ tag = "ALTER TEXT SEARCH DICTIONARY";
+ break;
+
+ case T_AlterTSConfigurationStmt:
+ tag = "ALTER TEXT SEARCH CONFIGURATION";
+ break;
+
case T_PrepareStmt:
tag = "PREPARE";
break;
@@ -2386,6 +2494,14 @@ GetCommandLogLevel(Node *parsetree)
lev = LOGSTMT_DDL;
break;
+ case T_AlterTSDictionaryStmt:
+ lev = LOGSTMT_DDL;
+ break;
+
+ case T_AlterTSConfigurationStmt:
+ lev = LOGSTMT_DDL;
+ break;
+
case T_PrepareStmt:
{
PrepareStmt *stmt = (PrepareStmt *) parsetree;