From 27a54ae282d74ee471a5b34d136fe3d4f894a9de Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 17 Apr 2002 20:57:57 +0000 Subject: Opclasses live in namespaces. I also took the opportunity to create an 'opclass owner' column in pg_opclass. Nothing is done with it at present, but since there are plans to invent a CREATE OPERATOR CLASS command soon, we'll probably want DROP OPERATOR CLASS too, which suggests that a notion of ownership would be a good idea. --- contrib/btree_gist/btree_gist.sql.in | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'contrib/btree_gist/btree_gist.sql.in') diff --git a/contrib/btree_gist/btree_gist.sql.in b/contrib/btree_gist/btree_gist.sql.in index 7089f1d3b56..98b868afc72 100644 --- a/contrib/btree_gist/btree_gist.sql.in +++ b/contrib/btree_gist/btree_gist.sql.in @@ -41,12 +41,15 @@ create function gint4_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' lan create function gint4_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -- add a new opclass -INSERT INTO pg_opclass (opcamid, opcname, opcintype, opckeytype, opcdefault) - SELECT pg_am.oid, 'gist_int4_ops', pg_type.oid, pg_key.oid, true - FROM pg_type, pg_am, pg_type pg_key - WHERE pg_type.typname = 'int4' and - pg_key.typname = 'int4key' and - pg_am.amname='gist'; +INSERT INTO pg_opclass (opcamid, opcname, opcnamespace, opcowner, opcintype, opcdefault, opckeytype) + VALUES ( + (SELECT oid FROM pg_am WHERE amname = 'gist'), + 'gist_int4_ops', + (SELECT oid FROM pg_namespace WHERE nspname = 'pg_catalog'), + 1, -- UID of superuser is hardwired to 1 as of PG 7.3 + (SELECT oid FROM pg_type WHERE typname = 'int4'), + true, + (SELECT oid FROM pg_type WHERE typname = 'int4key')); SELECT o.oid AS opoid, o.oprname @@ -170,12 +173,16 @@ create function gts_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' langu create function gts_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -INSERT INTO pg_opclass (opcamid, opcname, opcintype, opckeytype, opcdefault) - SELECT pg_am.oid, 'gist_timestamp_ops', pg_type.oid, pg_key.oid, true - FROM pg_type, pg_am, pg_type pg_key - WHERE pg_type.typname = 'timestamp' and - pg_key.typname = 'tskey' and - pg_am.amname='gist'; +-- add a new opclass +INSERT INTO pg_opclass (opcamid, opcname, opcnamespace, opcowner, opcintype, opcdefault, opckeytype) + VALUES ( + (SELECT oid FROM pg_am WHERE amname = 'gist'), + 'gist_timestamp_ops', + (SELECT oid FROM pg_namespace WHERE nspname = 'pg_catalog'), + 1, -- UID of superuser is hardwired to 1 as of PG 7.3 + (SELECT oid FROM pg_type WHERE typname = 'timestamp'), + true, + (SELECT oid FROM pg_type WHERE typname = 'tskey')); SELECT o.oid AS opoid, o.oprname INTO TABLE timestamp_ops_tmp -- cgit v1.2.3