diff options
-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; |