diff options
author | Tomas Vondra | 2017-07-09 14:07:26 +0000 |
---|---|---|
committer | Tomas Vondra | 2017-07-09 14:07:26 +0000 |
commit | 5abaee185309ee85b42b457610df5c97724dee2f (patch) | |
tree | fee14ffb05a2c31155c1f1218e6d8bba7e39b6b3 | |
parent | 34113efa41004a9d51e43ed0fd29f7a9b0799e69 (diff) |
Remove storm_catalog schema
The storm_catalog schema is supposed to contain the same catalogs and
views as pg_catalog, but filtered to the current database. The use case
for this is multi-tenant systems, which was a StormDB feature.
But on XL this is mostly irrelevant, and the schema was not populated
since commit 8096e3edf17b260de15472eb04567d1beec1e3e6 which disabled
this part of initdb.
So instead of fixing the regression failures in misc_sanity caused by
this (initdb-time schema with no pinned objects), just rip all the
remaining bits out, including the pgxc_catalog_remap GUC etc.
This also removes the setup_storm() call disabled by 8096e3edf1, as the
function got removed since then.
-rw-r--r-- | src/backend/catalog/Makefile | 1 | ||||
-rw-r--r-- | src/backend/catalog/namespace.c | 74 | ||||
-rw-r--r-- | src/backend/catalog/storm_catalog.sql | 307 | ||||
-rw-r--r-- | src/backend/parser/analyze.c | 96 | ||||
-rw-r--r-- | src/backend/parser/parse_relation.c | 43 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 5 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 92 | ||||
-rw-r--r-- | src/bin/initdb/initdb.c | 12 | ||||
-rw-r--r-- | src/include/catalog/pg_namespace.h | 5 | ||||
-rw-r--r-- | src/include/utils/guc.h | 1 | ||||
-rw-r--r-- | src/test/regress/expected/alter_table.out | 2 | ||||
-rw-r--r-- | src/test/regress/expected/rules.out | 2 | ||||
-rw-r--r-- | src/test/regress/sql/alter_table.sql | 2 | ||||
-rw-r--r-- | src/test/regress/sql/rules.sql | 2 |
14 files changed, 4 insertions, 640 deletions
diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile index 52bc63c788..1dd44d5576 100644 --- a/src/backend/catalog/Makefile +++ b/src/backend/catalog/Makefile @@ -79,7 +79,6 @@ install-data: $(BKIFILES) installdirs $(INSTALL_DATA) $(call vpathsearch,postgres.shdescription) '$(DESTDIR)$(datadir)/postgres.shdescription' $(INSTALL_DATA) $(srcdir)/system_views.sql '$(DESTDIR)$(datadir)/system_views.sql' $(INSTALL_DATA) $(srcdir)/information_schema.sql '$(DESTDIR)$(datadir)/information_schema.sql' - $(INSTALL_DATA) $(srcdir)/storm_catalog.sql '$(DESTDIR)$(datadir)/storm_catalog.sql' $(INSTALL_DATA) $(srcdir)/sql_features.txt '$(DESTDIR)$(datadir)/sql_features.txt' installdirs: diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c index 5f38aa814d..bae5035d91 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -710,11 +710,7 @@ RelationIsVisible(Oid relid) * list_member_oid() for them. */ relnamespace = relform->relnamespace; -#ifdef XCP - if (relnamespace != PG_CATALOG_NAMESPACE && relnamespace != STORM_CATALOG_NAMESPACE && -#else if (relnamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, relnamespace)) visible = false; else @@ -809,11 +805,7 @@ TypeIsVisible(Oid typid) * list_member_oid() for them. */ typnamespace = typform->typnamespace; -#ifdef XCP - if (typnamespace != PG_CATALOG_NAMESPACE && typnamespace != STORM_CATALOG_NAMESPACE && -#else if (typnamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, typnamespace)) visible = false; else @@ -1410,11 +1402,7 @@ FunctionIsVisible(Oid funcid) * list_member_oid() for them. */ pronamespace = procform->pronamespace; -#ifdef XCP - if (pronamespace != PG_CATALOG_NAMESPACE && pronamespace != STORM_CATALOG_NAMESPACE && -#else if (pronamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, pronamespace)) visible = false; else @@ -1747,11 +1735,7 @@ OperatorIsVisible(Oid oprid) * list_member_oid() for them. */ oprnamespace = oprform->oprnamespace; -#ifdef XCP - if (oprnamespace != PG_CATALOG_NAMESPACE && oprnamespace != STORM_CATALOG_NAMESPACE && -#else if (oprnamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, oprnamespace)) visible = false; else @@ -1837,11 +1821,7 @@ OpclassIsVisible(Oid opcid) * list_member_oid() for them. */ opcnamespace = opcform->opcnamespace; -#ifdef XCP - if (opcnamespace != PG_CATALOG_NAMESPACE && opcnamespace != STORM_CATALOG_NAMESPACE && -#else if (opcnamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, opcnamespace)) visible = false; else @@ -1924,11 +1904,7 @@ OpfamilyIsVisible(Oid opfid) * list_member_oid() for them. */ opfnamespace = opfform->opfnamespace; -#ifdef XCP - if (opfnamespace != PG_CATALOG_NAMESPACE && opfnamespace != STORM_CATALOG_NAMESPACE && -#else if (opfnamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, opfnamespace)) visible = false; else @@ -2060,11 +2036,7 @@ CollationIsVisible(Oid collid) * list_member_oid() for them. */ collnamespace = collform->collnamespace; -#ifdef XCP - if (collnamespace != PG_CATALOG_NAMESPACE && collnamespace != STORM_CATALOG_NAMESPACE && -#else if (collnamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, collnamespace)) visible = false; else @@ -2147,11 +2119,7 @@ ConversionIsVisible(Oid conid) * list_member_oid() for them. */ connamespace = conform->connamespace; -#ifdef XCP - if (connamespace != PG_CATALOG_NAMESPACE && connamespace != STORM_CATALOG_NAMESPACE && -#else if (connamespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, connamespace)) visible = false; else @@ -2378,11 +2346,7 @@ TSParserIsVisible(Oid prsId) * list_member_oid() for them. */ namespace = form->prsnamespace; -#ifdef XCP - if (namespace != PG_CATALOG_NAMESPACE && namespace != STORM_CATALOG_NAMESPACE && -#else if (namespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, namespace)) visible = false; else @@ -2509,11 +2473,7 @@ TSDictionaryIsVisible(Oid dictId) * list_member_oid() for them. */ namespace = form->dictnamespace; -#ifdef XCP - if (namespace != PG_CATALOG_NAMESPACE && namespace != STORM_CATALOG_NAMESPACE && -#else if (namespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, namespace)) visible = false; else @@ -2639,11 +2599,7 @@ TSTemplateIsVisible(Oid tmplId) * list_member_oid() for them. */ namespace = form->tmplnamespace; -#ifdef XCP - if (namespace != PG_CATALOG_NAMESPACE && namespace != STORM_CATALOG_NAMESPACE && -#else if (namespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, namespace)) visible = false; else @@ -2770,11 +2726,7 @@ TSConfigIsVisible(Oid cfgid) * list_member_oid() for them. */ namespace = form->cfgnamespace; -#ifdef XCP - if (namespace != PG_CATALOG_NAMESPACE && namespace != STORM_CATALOG_NAMESPACE && -#else if (namespace != PG_CATALOG_NAMESPACE && -#endif !list_member_oid(activeSearchPath, namespace)) visible = false; else @@ -3374,16 +3326,7 @@ GetOverrideSearchPath(MemoryContext context) result->addTemp = true; else { -#ifdef XCP - /* - * The while loop assumes that you can only have one catalog schema - * in the namespace. Not quite.. - */ - Assert(linitial_oid(schemas) == STORM_CATALOG_NAMESPACE || - linitial_oid(schemas) == PG_CATALOG_NAMESPACE); -#else Assert(linitial_oid(schemas) == PG_CATALOG_NAMESPACE); -#endif result->addCatalog = true; } schemas = list_delete_first(schemas); @@ -3439,11 +3382,6 @@ OverrideSearchPathMatchesCurrent(OverrideSearchPath *path) /* If path->addCatalog, next item should be pg_catalog. */ if (path->addCatalog) { - if (lc && lfirst_oid(lc) == STORM_CATALOG_NAMESPACE) - lc = lnext(lc); - else - return false; - if (lc && lfirst_oid(lc) == PG_CATALOG_NAMESPACE) lc = lnext(lc); else @@ -3512,14 +3450,7 @@ PushOverrideSearchPath(OverrideSearchPath *newpath) * permissions for these. */ if (newpath->addCatalog) -#ifdef XCP - { oidlist = lcons_oid(PG_CATALOG_NAMESPACE, oidlist); - oidlist = lcons_oid(STORM_CATALOG_NAMESPACE, oidlist); - } -#else - oidlist = lcons_oid(PG_CATALOG_NAMESPACE, oidlist); -#endif if (newpath->addTemp && OidIsValid(myTempNamespace)) oidlist = lcons_oid(myTempNamespace, oidlist); @@ -3838,11 +3769,6 @@ recomputeNamespacePath(void) if (!list_member_oid(oidlist, PG_CATALOG_NAMESPACE)) oidlist = lcons_oid(PG_CATALOG_NAMESPACE, oidlist); -#ifdef XCP - if (!list_member_oid(oidlist, STORM_CATALOG_NAMESPACE)) - oidlist = lcons_oid(STORM_CATALOG_NAMESPACE, oidlist); -#endif - if (OidIsValid(myTempNamespace) && !list_member_oid(oidlist, myTempNamespace)) oidlist = lcons_oid(myTempNamespace, oidlist); diff --git a/src/backend/catalog/storm_catalog.sql b/src/backend/catalog/storm_catalog.sql deleted file mode 100644 index 47776ba00a..0000000000 --- a/src/backend/catalog/storm_catalog.sql +++ /dev/null @@ -1,307 +0,0 @@ -CREATE VIEW storm_catalog.pg_roles AS - SELECT * - FROM pg_catalog.pg_roles - WHERE rolname = current_user - OR split_part(rolname, '@', 2) = current_database(); - -GRANT SELECT on storm_catalog.pg_roles TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_roles FROM public; - -CREATE VIEW storm_catalog.pg_shdescription AS - SELECT d.objoid, d.classoid, d.description - FROM pg_catalog.pg_shdescription d, pg_catalog.pg_class c - WHERE d.classoid = c.oid - AND c.relname = 'pg_database' - AND d.objoid = (SELECT oid FROM pg_database WHERE datname = current_database()) - UNION - SELECT d.objoid, d.classoid, d.description - FROM pg_catalog.pg_shdescription d, pg_catalog.pg_class c - WHERE d.classoid = c.oid - AND c.relname = 'pg_authid' - AND d.objoid = (SELECT oid FROM storm_catalog.pg_roles WHERE rolname = current_user); - -GRANT SELECT on storm_catalog.pg_shdescription TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_shdescription FROM public; - -CREATE VIEW storm_catalog.pg_database AS - SELECT tableoid, oid, datname, datdba, encoding, datcollate, datctype, - datistemplate, datallowconn, datconnlimit, datlastsysoid, - datfrozenxid, dattablespace, datacl - FROM pg_catalog.pg_database - WHERE datallowconn AND (has_database_privilege(datname, 'CREATE') OR - split_part(current_user, '@', 2) = datname); - -GRANT SELECT on storm_catalog.pg_database TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_database FROM public; - -CREATE VIEW storm_catalog.pg_db_role_setting AS - SELECT setdatabase, setrole, setconfig - FROM pg_catalog.pg_db_role_setting - WHERE setdatabase = (SELECT oid FROM pg_database WHERE datname = current_database()) - UNION - SELECT setdatabase, setrole, setconfig - FROM pg_db_role_setting - WHERE setrole = (SELECT oid FROM storm_catalog.pg_roles WHERE rolname = current_user); - -GRANT SELECT on storm_catalog.pg_db_role_setting TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_db_role_setting FROM public; - -CREATE VIEW storm_catalog.pg_tablespace AS - SELECT oid, spcname, spcowner, ''::text as spclocation, ''::text as spcacl, - ''::text as spcoptions FROM pg_catalog.pg_tablespace; - -GRANT SELECT on storm_catalog.pg_tablespace TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_tablespace FROM public; - -CREATE VIEW storm_catalog.pg_auth_members AS - SELECT roleid, member, grantor, admin_option - FROM pg_catalog.pg_auth_members - WHERE roleid = (SELECT oid FROM storm_catalog.pg_roles WHERE rolname = current_user) - UNION - SELECT roleid, member, grantor, admin_option - FROM pg_catalog.pg_auth_members - WHERE grantor = (SELECT oid FROM storm_catalog.pg_roles WHERE rolname = current_user); - -GRANT SELECT on storm_catalog.pg_auth_members TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_auth_members FROM public; - -CREATE VIEW storm_catalog.pg_shdepend AS - SELECT dbid, classid, objid, objsubid, refclassid, refobjid, deptype - FROM pg_catalog.pg_shdepend - WHERE dbid = (SELECT oid FROM pg_database WHERE datname = current_database()); - -GRANT SELECT on storm_catalog.pg_shdepend TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_shdepend FROM public; - -CREATE VIEW storm_catalog.pg_stat_database AS - SELECT * - FROM pg_catalog.pg_stat_database - WHERE datid = (SELECT oid FROM pg_database WHERE datname = current_database()); - -GRANT SELECT on storm_catalog.pg_stat_database TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_stat_database FROM public; - -CREATE VIEW storm_catalog.pg_stat_database_conflicts AS - SELECT * - FROM pg_catalog.pg_stat_database_conflicts - WHERE datid = (SELECT oid FROM pg_database WHERE datname = current_database()); - -GRANT SELECT on storm_catalog.pg_stat_database_conflicts TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_stat_database_conflicts FROM public; - - -CREATE VIEW storm_catalog.pg_prepared_xacts AS - SELECT * - FROM pg_catalog.pg_prepared_xacts - WHERE database = current_database(); - -GRANT SELECT on storm_catalog.pg_prepared_xacts TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_prepared_xacts FROM public; - -CREATE VIEW storm_catalog.pg_user AS - SELECT * - FROM pg_catalog.pg_user - WHERE usename = current_user - OR split_part(usename, '@', 2) = current_database(); - -GRANT SELECT on storm_catalog.pg_user TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_user FROM public; - -CREATE VIEW storm_catalog.pg_group AS - SELECT * - FROM pg_catalog.pg_group - WHERE split_part(groname, '@', 2) = current_database(); - -GRANT SELECT on storm_catalog.pg_group TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_group FROM public; - -CREATE VIEW storm_catalog.pg_shadow AS - SELECT * - FROM pg_catalog.pg_shadow - WHERE usename = current_user - OR split_part(usename, '@', 2) = current_database(); - -GRANT SELECT on storm_catalog.pg_shadow TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_shadow FROM public; - -CREATE VIEW storm_catalog.pg_user_mappings AS - SELECT * - FROM pg_catalog.pg_user_mappings - WHERE usename = current_user - OR split_part(usename, '@', 2) = current_database(); - -GRANT SELECT on storm_catalog.pg_user_mappings TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_user_mappings FROM public; - -REVOKE ALL on pg_catalog.pg_stat_bgwriter FROM public; - -REVOKE ALL on pg_catalog.pg_seclabels FROM public; - -REVOKE ALL on FUNCTION pg_catalog.pg_conf_load_time() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_current_xlog_insert_location() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_current_xlog_location() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_is_in_recovery() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_last_xlog_receive_location() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_last_xlog_replay_location() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_postmaster_start_time() FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_tablespace_databases(oid) FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_tablespace_size(oid) FROM PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_tablespace_size(name) FROM PUBLIC; - -CREATE FUNCTION storm_catalog.pg_database_size(name) RETURNS bigint AS -$BODY$ -BEGIN - IF $1 = current_database() THEN - return pg_catalog.pg_database_size($1); - END IF; - - return 0; -END -$BODY$ -LANGUAGE 'plpgsql' ; - -GRANT EXECUTE on FUNCTION storm_catalog.pg_database_size(name) TO PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_database_size(name) FROM PUBLIC; - -CREATE OR REPLACE FUNCTION storm_catalog.pg_database_size(oid) RETURNS bigint AS -$BODY$ -DECLARE - is_current_db boolean; -BEGIN - SELECT $1 = oid - INTO is_current_db - FROM pg_catalog.pg_database - WHERE datname = current_database(); - - IF is_current_db THEN - return pg_catalog.pg_database_size($1); - END IF; - - return 0; -END -$BODY$ -LANGUAGE 'plpgsql' ; - -GRANT EXECUTE on FUNCTION storm_catalog.pg_database_size(oid) TO PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_database_size(oid) FROM PUBLIC; - -CREATE FUNCTION storm_catalog.pg_show_all_settings( - OUT name text, OUT setting text, OUT unit text, OUT category text, - OUT short_desc text, OUT extra_desc text, OUT context text, - OUT vartype text, OUT source text, OUT min_val text, OUT max_val text, - OUT enumvals text[], OUT boot_val text, OUT reset_val text, - OUT sourcefile text, OUT sourceline integer) -RETURNS SETOF record AS -$BODY$ -BEGIN - RETURN QUERY - SELECT * - FROM pg_catalog.pg_show_all_settings() s - WHERE s.context != 'postmaster' - AND s.context != 'sighup'; -END -$BODY$ -LANGUAGE 'plpgsql' SECURITY DEFINER; - -GRANT EXECUTE on FUNCTION storm_catalog.pg_show_all_settings() TO PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_show_all_settings() FROM PUBLIC; - -CREATE VIEW storm_catalog.pg_settings AS - SELECT * - FROM pg_show_all_settings(); - -GRANT SELECT on storm_catalog.pg_settings TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_settings FROM public; - -CREATE FUNCTION storm_catalog.pg_stat_get_activity( - procpid integer, OUT datid oid, OUT pid integer, OUT usesysid oid, - OUT application_name text, OUT state text, OUT query text, - OUT waiting boolean, OUT xact_start timestamp with time zone, - OUT query_start timestamp with time zone, - OUT backend_start timestamp with time zone, - OUT state_change timestamp with time zone, - OUT client_addr inet, - OUT client_hostname text, OUT client_port integer) -RETURNS SETOF record AS -$BODY$ -BEGIN - RETURN QUERY - SELECT * - FROM pg_catalog.pg_stat_get_activity($1) s - WHERE s.datid = (SELECT oid - FROM pg_database - WHERE datname = current_database()); -END -$BODY$ -LANGUAGE 'plpgsql' SECURITY DEFINER; - -GRANT EXECUTE on FUNCTION storm_catalog.pg_stat_get_activity(integer) TO PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_stat_get_activity(integer) FROM PUBLIC; - -CREATE VIEW storm_catalog.pg_stat_activity AS - SELECT * - FROM storm_catalog.pg_stat_get_activity(NULL); - -GRANT SELECT on storm_catalog.pg_stat_activity TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_stat_activity FROM public; - -CREATE FUNCTION storm_catalog.pg_lock_status( - OUT locktype text, OUT database oid, OUT relation oid, - OUT page integer, OUT tuple smallint, OUT virtualxid text, - OUT transactionid xid, OUT classid oid, OUT objid oid, - OUT objsubid smallint, OUT virtualtransaction text, - OUT pid integer, OUT mode text, OUT granted boolean, - OUT fastpath boolean) -RETURNS SETOF record AS -$BODY$ -BEGIN - RETURN QUERY - SELECT * - FROM pg_catalog.pg_lock_status() l - WHERE l.database = (SELECT oid - FROM pg_database - WHERE datname = current_database()); -END -$BODY$ -LANGUAGE 'plpgsql' SECURITY DEFINER; - -GRANT EXECUTE on FUNCTION storm_catalog.pg_lock_status() TO PUBLIC; - -REVOKE ALL on FUNCTION pg_catalog.pg_lock_status() FROM PUBLIC; - -CREATE VIEW storm_catalog.pg_locks AS - SELECT * - FROM storm_catalog.pg_lock_status(); - -GRANT SELECT on storm_catalog.pg_locks TO PUBLIC; - -REVOKE ALL on pg_catalog.pg_locks FROM public; diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index fb6250efb1..7ccd3f3dd8 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -110,11 +110,6 @@ static void transformLockingClause(ParseState *pstate, Query *qry, static bool test_raw_expression_coverage(Node *node, void *context); #endif -#ifdef XCP -static void ParseAnalyze_rtable_walk(List *rtable); -static void ParseAnalyze_substitute_func(FuncExpr *funcexpr); -#endif - /* * parse_analyze * Analyze a raw parse tree and transform it to Query form. @@ -3107,97 +3102,6 @@ applyLockingClause(Query *qry, Index rtindex, qry->rowMarks = lappend(qry->rowMarks, rc); } -#ifdef XCP -post_parse_analyze_hook_type prev_ParseAnalyze_callback; - -/* - * Check if the query contains references to any pg_catalog tables that should - * be remapped to storm_catalog. The list is obtained from the - * storm_catalog_remap_string GUC. Also do this only for normal users - */ -void -ParseAnalyze_callback(ParseState *pstate, Query *query) -{ - if (prev_ParseAnalyze_callback) - prev_ParseAnalyze_callback(pstate, query); - - if (query && query->commandType == CMD_UTILITY) - return; - - ParseAnalyze_rtable_walk(query->rtable); -} - -static void -ParseAnalyze_rtable_walk(List *rtable) -{ - ListCell *item; - - if (!IsUnderPostmaster || superuser()) - return; - - foreach(item, rtable) - { - RangeTblEntry *rte = (RangeTblEntry *) lfirst(item); - - if (rte->rtekind == RTE_FUNCTION) - { - ListCell *lc; - foreach(lc, rte->functions) - { - RangeTblFunction *rtfunc = (RangeTblFunction *) lfirst(lc); - ParseAnalyze_substitute_func((FuncExpr *) rtfunc->funcexpr); - } - } - else if (rte->rtekind == RTE_SUBQUERY) /* recurse for subqueries */ - ParseAnalyze_rtable_walk(rte->subquery->rtable); - } -} - -static void -ParseAnalyze_substitute_func(FuncExpr *funcexpr) -{ - StringInfoData buf; - initStringInfo(&buf); - - if (get_func_namespace(funcexpr->funcid) == PG_CATALOG_NAMESPACE) - { - Oid funcid = InvalidOid; - const char *funcname = get_func_name(funcexpr->funcid); - - /* Check if the funcname is in storm_catalog_remap_string */ - appendStringInfoString(&buf, funcname); - appendStringInfoChar(&buf, ','); - - elog(DEBUG2, "the constructed name is %s", buf.data); - - /* - * The unqualified function name should be satisfied from the - * storm_catalog appropriately. Just provide a warning for now if - * it is not.. - */ - if (strstr(storm_catalog_remap_string, buf.data)) - { - Oid *argtypes = NULL; - int nargs; - - get_func_signature(funcexpr->funcid, &argtypes, &nargs); - funcid = get_funcid(funcname, buildoidvector(argtypes, nargs), - STORM_CATALOG_NAMESPACE); - } - else - return; - - if (get_func_namespace(funcid) != STORM_CATALOG_NAMESPACE) - ereport(WARNING, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("Entry (%s) present in storm_catalog_remap_string " - "but object not picked from STORM_CATALOG", funcname))); - else /* change the funcid to the storm_catalog one */ - funcexpr->funcid = funcid; - } -} -#endif - /* * Coverage testing for raw_expression_tree_walker(). * diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index f2d4b21746..03e7fa4074 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -1251,49 +1251,6 @@ addRangeTableEntry(ParseState *pstate, lockmode = isLockedRefname(pstate, refname) ? RowShareLock : AccessShareLock; rel = parserOpenTable(pstate, relation, lockmode); rte->relid = RelationGetRelid(rel); - -#ifdef XCP - if (IsUnderPostmaster && !superuser() && - get_rel_namespace(rte->relid) == PG_CATALOG_NAMESPACE) - { - Oid relid = InvalidOid; - const char *relname = get_rel_name(rte->relid); - StringInfoData buf; - - /* Check if the relname is in storm_catalog_remap_string */ - initStringInfo(&buf); - appendStringInfoString(&buf, relname); - appendStringInfoChar(&buf, ','); - - elog(DEBUG2, "the constructed name is %s", buf.data); - - /* - * The unqualified relation name should be satisfied from the - * storm_catalog appropriately. Just provide a warning for now if - * it is not.. - */ - if (strstr(storm_catalog_remap_string, buf.data)) - { - relid = RelnameGetRelid((const char *)relname); - - if (get_rel_namespace(relid) != STORM_CATALOG_NAMESPACE) - ereport(WARNING, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("Entry (%s) present in storm_catalog_remap_string " - "but object not picked from STORM_CATALOG",relname))); - else - { - - /* close the existing relation and open the new one */ - heap_close(rel, NoLock); - - rel = relation_open(relid, NoLock); - rte->relid = RelationGetRelid(rel); - } - } - } -#endif - rte->relkind = rel->rd_rel->relkind; /* diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 4bd9564326..8aa7dc25dc 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -4318,11 +4318,6 @@ PostgresMain(int argc, char *argv[], finish_xact_command(); } - /* Set up the post parse analyze hook */ - if (post_parse_analyze_hook) - prev_ParseAnalyze_callback = post_parse_analyze_hook; - post_parse_analyze_hook = ParseAnalyze_callback; - #ifdef USE_MODULE_MSGIDS AtProcStart_MsgModule(); #endif diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 2deaf62455..da871b8045 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -224,8 +224,6 @@ static ConfigVariable *ProcessConfigFileInternal(GucContext context, bool applySettings, int elevel); #ifdef XCP -static bool check_storm_catalog_remap_string(char **newval, - void **extra, GucSource source); static void strreplace_all(char *str, char *needle, char *replacement); #endif @@ -536,9 +534,6 @@ int tcp_keepalives_idle; int tcp_keepalives_interval; int tcp_keepalives_count; -#ifdef XCP -char *storm_catalog_remap_string; -#endif /* * SSL renegotiation was been removed in PostgreSQL 9.5, but we tolerate it * being set to zero (meaning never renegotiate) for backward compatibility. @@ -3671,23 +3666,6 @@ static struct config_string ConfigureNamesString[] = "none", check_global_session, assign_global_session, NULL }, - - - { - {"pgxc_catalog_remap", PGC_SIGHUP, XC_HOUSEKEEPING_OPTIONS, - gettext_noop("List of catalog tables/views that always need to be " - "mapped to the storm_catalog."), - NULL, - GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY - }, - &storm_catalog_remap_string, -#ifdef NOT_USED - "pg_roles, pg_shdescription, pg_database, pg_db_role_setting, pg_tablespace, pg_auth_members, pg_shdepend, pg_stat_database, pg_stat_database_conflicts, pg_stat_activity, pg_locks, pg_prepared_xacts, pg_settings, pg_user, pg_group, pg_shadow, pg_user_mappings, pg_database_size, pg_show_all_settings, pg_stat_get_activity, pg_lock_status", -#else - "", -#endif - check_storm_catalog_remap_string, NULL, NULL - }, #endif { @@ -11070,76 +11048,6 @@ show_log_file_mode(void) #ifdef XCP /* - * remove all unwanted spaces from the input, lowercase all the characters and - * also add a ',' towards the end if it does not exist. This makes calling - * strstr easier on it - */ -static bool -check_storm_catalog_remap_string(char **newval, void **extra, GucSource source) -{ - /* - * Check syntax. newval must be a comma separated list of identifiers. - * Whitespace is allowed but removed from the result. - */ - bool hasSpaceAfterToken = false; - const char *cp = *newval; - int symLen = 0; - char c; - StringInfoData buf; - - /* Default NULL is OK */ - if (cp == NULL) - return true; - - initStringInfo(&buf); - while ((c = *cp++) != '\0') - { - if (isspace((unsigned char) c)) - { - if (symLen > 0) - hasSpaceAfterToken = true; - continue; - } - - if (c == ',') - { - if (symLen > 0) /* terminate identifier */ - { - appendStringInfoChar(&buf, ','); - symLen = 0; - } - hasSpaceAfterToken = false; - continue; - } - - if (hasSpaceAfterToken) - { - /* - * Syntax error due to token following space after token - */ - pfree(buf.data); - return false; - } - /* We lower case everything */ - appendStringInfoChar(&buf, pg_tolower(c)); - symLen++; - } - - /* Append ',' at end if not present already */ - if (symLen != 0 && buf.len > 0) - appendStringInfoChar(&buf, ','); - - /* GUC wants the result malloc'd */ - free(*newval); - *newval = guc_strdup(LOG, buf.data); - - pfree(buf.data); - return true; -} -#endif - -#ifdef XCP -/* * Return a quoted GUC value, when necessary */ const char * diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 54fb24f42a..530cc9c38c 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -159,9 +159,6 @@ static char *conf_file; static char *conversion_file; static char *dictionary_file; static char *info_schema_file; -#ifdef XCP -static char *storm_cat_file; -#endif static char *features_file; static char *system_views_file; static bool made_new_pgdata = false; @@ -1766,9 +1763,6 @@ setup_privileges(FILE *cmdfd) " AND relacl IS NULL;\n\n", "GRANT USAGE ON SCHEMA pg_catalog TO PUBLIC;\n\n", "GRANT CREATE, USAGE ON SCHEMA public TO PUBLIC;\n\n", -#ifdef XCP - "GRANT USAGE ON SCHEMA storm_catalog TO PUBLIC;\n", -#endif "REVOKE ALL ON pg_largeobject FROM PUBLIC;\n\n", "INSERT INTO pg_init_privs " " (objoid, classoid, objsubid, initprivs, privtype)" @@ -2633,9 +2627,6 @@ setup_data_file_paths(void) set_input(&conversion_file, "conversion_create.sql"); set_input(&dictionary_file, "snowball_create.sql"); set_input(&info_schema_file, "information_schema.sql"); -#ifdef XCP - set_input(&storm_cat_file, "storm_catalog.sql"); -#endif set_input(&features_file, "sql_features.txt"); set_input(&system_views_file, "system_views.sql"); @@ -2667,9 +2658,6 @@ setup_data_file_paths(void) check_input(conversion_file); check_input(dictionary_file); check_input(info_schema_file); -#ifdef XCP - check_input(storm_cat_file); -#endif check_input(features_file); check_input(system_views_file); } diff --git a/src/include/catalog/pg_namespace.h b/src/include/catalog/pg_namespace.h index 095c5154ae..92f1352ccd 100644 --- a/src/include/catalog/pg_namespace.h +++ b/src/include/catalog/pg_namespace.h @@ -76,11 +76,6 @@ DESCR("reserved schema for TOAST tables"); DATA(insert OID = 2200 ( "public" PGUID _null_ )); DESCR("standard public schema"); #define PG_PUBLIC_NAMESPACE 2200 -#ifdef XCP -DATA(insert OID = 9 ( "storm_catalog" PGUID _null_ )); -DESCR("StormDB catalog schema"); -#define STORM_CATALOG_NAMESPACE 9 -#endif /* diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index 7917832a55..83b77f5548 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -274,7 +274,6 @@ extern int tcp_keepalives_interval; extern int tcp_keepalives_count; #ifdef XCP -extern char *storm_catalog_remap_string; extern char *global_session_string; #endif #ifdef TRACE_SORT diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index f2b303a4c6..a2937251d5 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -2183,7 +2183,7 @@ where virtualtransaction = ( from pg_catalog.pg_locks where transactionid = txid_current()::integer) and locktype = 'relation' -and relnamespace not in (select oid from pg_namespace where nspname = 'pg_catalog' or nspname = 'storm_catalog') +and relnamespace not in (select oid from pg_namespace where nspname = 'pg_catalog') and c.relname != 'my_locks' group by c.relname; create table alterlock (f1 int primary key, f2 text); diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 914c122af0..8d13ee90c5 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -1298,7 +1298,7 @@ drop table cchild; -- -- temporarily disable fancy output, so view changes create less diff noise \a\t -SELECT viewname, definition FROM pg_views WHERE schemaname <> 'information_schema' AND schemaname <> 'storm_catalog' ORDER BY viewname; +SELECT viewname, definition FROM pg_views WHERE schemaname <> 'information_schema' ORDER BY viewname; iexit| SELECT ih.name, ih.thepath, interpt_pp(ih.thepath, r.thepath) AS exit diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql index 3d2bccddf8..b0be9e00b4 100644 --- a/src/test/regress/sql/alter_table.sql +++ b/src/test/regress/sql/alter_table.sql @@ -1427,7 +1427,7 @@ where virtualtransaction = ( from pg_catalog.pg_locks where transactionid = txid_current()::integer) and locktype = 'relation' -and relnamespace not in (select oid from pg_namespace where nspname = 'pg_catalog' or nspname = 'storm_catalog') +and relnamespace not in (select oid from pg_namespace where nspname = 'pg_catalog') and c.relname != 'my_locks' group by c.relname; diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql index fb46e95d38..521ae49911 100644 --- a/src/test/regress/sql/rules.sql +++ b/src/test/regress/sql/rules.sql @@ -775,7 +775,7 @@ drop table cchild; -- temporarily disable fancy output, so view changes create less diff noise \a\t -SELECT viewname, definition FROM pg_views WHERE schemaname <> 'information_schema' AND schemaname <> 'storm_catalog' ORDER BY viewname; +SELECT viewname, definition FROM pg_views WHERE schemaname <> 'information_schema' ORDER BY viewname; SELECT tablename, rulename, definition FROM pg_rules ORDER BY tablename, rulename; |