if (!columns_only)
{
- nsp = get_namespace_name(statextrec->stxnamespace);
+ nsp = get_namespace_name_or_temp(statextrec->stxnamespace);
appendStringInfo(&buf, "CREATE STATISTICS %s",
quote_qualified_identifier(nsp,
NameStr(statextrec->stxname)));
* We always qualify the function name, to ensure the right function gets
* replaced.
*/
- nsp = get_namespace_name(proc->pronamespace);
+ nsp = get_namespace_name_or_temp(proc->pronamespace);
appendStringInfo(&buf, "CREATE OR REPLACE %s %s(",
isfunction ? "FUNCTION" : "PROCEDURE",
quote_qualified_identifier(nsp, name));
appendStringInfo(buf, " %s", quote_identifier(opcname));
else
{
- nspname = get_namespace_name(opcrec->opcnamespace);
+ nspname = get_namespace_name_or_temp(opcrec->opcnamespace);
appendStringInfo(buf, " %s.%s",
quote_identifier(nspname),
quote_identifier(opcname));
need_qual = !RelationIsVisible(relid);
if (need_qual)
- nspname = get_namespace_name(reltup->relnamespace);
+ nspname = get_namespace_name_or_temp(reltup->relnamespace);
else
nspname = NULL;
reltup = (Form_pg_class) GETSTRUCT(tp);
relname = NameStr(reltup->relname);
- nspname = get_namespace_name(reltup->relnamespace);
+ nspname = get_namespace_name_or_temp(reltup->relnamespace);
if (!nspname)
elog(ERROR, "cache lookup failed for namespace %u",
reltup->relnamespace);
p_funcid == funcid)
nspname = NULL;
else
- nspname = get_namespace_name(procform->pronamespace);
+ nspname = get_namespace_name_or_temp(procform->pronamespace);
result = quote_qualified_identifier(nspname, proname);
nspname = NULL;
else
{
- nspname = get_namespace_name(operform->oprnamespace);
+ nspname = get_namespace_name_or_temp(operform->oprnamespace);
appendStringInfo(&buf, "OPERATOR(%s.", quote_identifier(nspname));
}
typform = (Form_pg_type) GETSTRUCT(typetup);
typname = NameStr(typform->typname);
- nspname = get_namespace_name(typform->typnamespace);
+ nspname = get_namespace_name_or_temp(typform->typnamespace);
appendStringInfo(buf, "::%s.%s",
quote_identifier(nspname), quote_identifier(typname));
typtup = (Form_pg_type) GETSTRUCT(tp);
typname = NameStr(typtup->typname);
- nspname = get_namespace_name(typtup->typnamespace);
+ nspname = get_namespace_name_or_temp(typtup->typnamespace);
if (!nspname)
elog(ERROR, "cache lookup failed for namespace %u",
typtup->typnamespace);
collname = NameStr(colltup->collname);
if (!CollationIsVisible(collid))
- nspname = get_namespace_name(colltup->collnamespace);
+ nspname = get_namespace_name_or_temp(colltup->collnamespace);
else
nspname = NULL;
(1 row)
rollback;
+-- Test display of temporary objects
+create temp table t1(f1 float8);
+create function pg_temp.mysin(float8) returns float8 language plpgsql
+as 'begin return sin($1); end';
+select explain_filter('explain (verbose) select * from t1 where pg_temp.mysin(f1) < 0.5');
+ explain_filter
+------------------------------------------------------------
+ Seq Scan on pg_temp.t1 (cost=N.N..N.N rows=N width=N)
+ Output: f1
+ Filter: (pg_temp.mysin(t1.f1) < 'N.N'::double precision)
+(3 rows)
+
+-- Test compute_query_id
set compute_query_id = on;
select explain_filter('explain (verbose) select * from int8_tbl i8');
explain_filter