aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/ruleutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
-rw-r--r--src/backend/utils/adt/ruleutils.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index d57d5568b28..c2681ced2af 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -1448,11 +1448,10 @@ static char *
pg_get_statisticsext_worker(Oid statextid, bool missing_ok)
{
Form_pg_statistic_ext statextrec;
- Form_pg_class pgclassrec;
HeapTuple statexttup;
- HeapTuple pgclasstup;
StringInfoData buf;
int colno;
+ char *nsp;
statexttup = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(statextid));
@@ -1465,20 +1464,12 @@ pg_get_statisticsext_worker(Oid statextid, bool missing_ok)
statextrec = (Form_pg_statistic_ext) GETSTRUCT(statexttup);
- pgclasstup = SearchSysCache1(RELOID, ObjectIdGetDatum(statextrec->starelid));
-
- if (!HeapTupleIsValid(statexttup))
- {
- ReleaseSysCache(statexttup);
- elog(ERROR, "cache lookup failed for relation %u", statextrec->starelid);
- }
-
- pgclassrec = (Form_pg_class) GETSTRUCT(pgclasstup);
-
initStringInfo(&buf);
+ nsp = get_namespace_name(statextrec->stanamespace);
appendStringInfo(&buf, "CREATE STATISTICS %s ON (",
- quote_identifier(NameStr(statextrec->staname)));
+ quote_qualified_identifier(nsp,
+ NameStr(statextrec->staname)));
for (colno = 0; colno < statextrec->stakeys.dim1; colno++)
{
@@ -1494,10 +1485,9 @@ pg_get_statisticsext_worker(Oid statextid, bool missing_ok)
}
appendStringInfo(&buf, ") FROM %s",
- quote_identifier(NameStr(pgclassrec->relname)));
+ generate_relation_name(statextrec->starelid, NIL));
ReleaseSysCache(statexttup);
- ReleaseSysCache(pgclasstup);
return buf.data;
}