aboutsummaryrefslogtreecommitdiff
path: root/src/backend/tcop/utility.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-01-23 05:07:18 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-01-23 05:07:18 +0000
commita33cf1041f99ed5f19bb7d24584db79ada07d8a4 (patch)
treefc179c291b1289b39b69c25a988cf9cc414eaa05 /src/backend/tcop/utility.c
parent8502b68513923c43293bce5093eb44e285be2626 (diff)
downloadpostgresql-a33cf1041f99ed5f19bb7d24584db79ada07d8a4.tar.gz
postgresql-a33cf1041f99ed5f19bb7d24584db79ada07d8a4.zip
Add CREATE/ALTER/DROP OPERATOR FAMILY commands, also COMMENT ON OPERATOR
FAMILY; and add FAMILY option to CREATE OPERATOR CLASS to allow adding a class to a pre-existing family. Per previous discussion. Man, what a tedious lot of cutting and pasting ...
Diffstat (limited to 'src/backend/tcop/utility.c')
-rw-r--r--src/backend/tcop/utility.c47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 19b89916bf1..613ef653d19 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.270 2007/01/05 22:19:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.271 2007/01/23 05:07:18 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -322,6 +322,8 @@ check_xact_readonly(Node *parsetree)
case T_IndexStmt:
case T_CreatePLangStmt:
case T_CreateOpClassStmt:
+ case T_CreateOpFamilyStmt:
+ case T_AlterOpFamilyStmt:
case T_RuleStmt:
case T_CreateSchemaStmt:
case T_CreateSeqStmt:
@@ -338,6 +340,7 @@ check_xact_readonly(Node *parsetree)
case T_DropRoleStmt:
case T_DropPLangStmt:
case T_RemoveOpClassStmt:
+ case T_RemoveOpFamilyStmt:
case T_DropPropertyStmt:
case T_GrantStmt:
case T_GrantRoleStmt:
@@ -1099,10 +1102,22 @@ ProcessUtility(Node *parsetree,
DefineOpClass((CreateOpClassStmt *) parsetree);
break;
+ case T_CreateOpFamilyStmt:
+ DefineOpFamily((CreateOpFamilyStmt *) parsetree);
+ break;
+
+ case T_AlterOpFamilyStmt:
+ AlterOpFamily((AlterOpFamilyStmt *) parsetree);
+ break;
+
case T_RemoveOpClassStmt:
RemoveOpClass((RemoveOpClassStmt *) parsetree);
break;
+ case T_RemoveOpFamilyStmt:
+ RemoveOpFamily((RemoveOpFamilyStmt *) parsetree);
+ break;
+
default:
elog(ERROR, "unrecognized node type: %d",
(int) nodeTag(parsetree));
@@ -1445,6 +1460,9 @@ CreateCommandTag(Node *parsetree)
case OBJECT_OPCLASS:
tag = "ALTER OPERATOR CLASS";
break;
+ case OBJECT_OPFAMILY:
+ tag = "ALTER OPERATOR FAMILY";
+ break;
case OBJECT_ROLE:
tag = "ALTER ROLE";
break;
@@ -1518,6 +1536,9 @@ CreateCommandTag(Node *parsetree)
case OBJECT_OPCLASS:
tag = "ALTER OPERATOR CLASS";
break;
+ case OBJECT_OPFAMILY:
+ tag = "ALTER OPERATOR FAMILY";
+ break;
case OBJECT_SCHEMA:
tag = "ALTER SCHEMA";
break;
@@ -1777,10 +1798,22 @@ CreateCommandTag(Node *parsetree)
tag = "CREATE OPERATOR CLASS";
break;
+ case T_CreateOpFamilyStmt:
+ tag = "CREATE OPERATOR FAMILY";
+ break;
+
+ case T_AlterOpFamilyStmt:
+ tag = "ALTER OPERATOR FAMILY";
+ break;
+
case T_RemoveOpClassStmt:
tag = "DROP OPERATOR CLASS";
break;
+ case T_RemoveOpFamilyStmt:
+ tag = "DROP OPERATOR FAMILY";
+ break;
+
case T_PrepareStmt:
tag = "PREPARE";
break;
@@ -2147,10 +2180,22 @@ GetCommandLogLevel(Node *parsetree)
lev = LOGSTMT_DDL;
break;
+ case T_CreateOpFamilyStmt:
+ lev = LOGSTMT_DDL;
+ break;
+
+ case T_AlterOpFamilyStmt:
+ lev = LOGSTMT_DDL;
+ break;
+
case T_RemoveOpClassStmt:
lev = LOGSTMT_DDL;
break;
+ case T_RemoveOpFamilyStmt:
+ lev = LOGSTMT_DDL;
+ break;
+
case T_PrepareStmt:
{
PrepareStmt *stmt = (PrepareStmt *) parsetree;