summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/catalog/Makefile1
-rw-r--r--src/backend/catalog/namespace.c74
-rw-r--r--src/backend/catalog/storm_catalog.sql307
-rw-r--r--src/backend/parser/analyze.c96
-rw-r--r--src/backend/parser/parse_relation.c43
-rw-r--r--src/backend/tcop/postgres.c5
-rw-r--r--src/backend/utils/misc/guc.c92
-rw-r--r--src/bin/initdb/initdb.c12
-rw-r--r--src/include/catalog/pg_namespace.h5
-rw-r--r--src/include/utils/guc.h1
-rw-r--r--src/test/regress/expected/alter_table.out2
-rw-r--r--src/test/regress/expected/rules.out2
-rw-r--r--src/test/regress/sql/alter_table.sql2
-rw-r--r--src/test/regress/sql/rules.sql2
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;