Tom,
* Stephen Frost (sfrost@snowman.net) wrote:
> * Tom Lane (tgl@sss.pgh.pa.us) wrote:
> > Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> > > On 9/25/17 15:16, Andres Freund wrote:
> > >> This'll accept tablenames like pg_temp_1foo, right? Might be worth
> > >> being a bit narrower in the test.
> >
> > > Committed with that change. Thanks.
> >
> > This patch is using the wrong approach entirely. Every other place in
> > the backend that is trying to exclude temp relations uses a test on the
> > containing namespace, not the relname.
>
> The specific issue here is that the new pg_class entry is created in the
> same namespace, not in the temp one. The commit mentions make_new_heap()
> specifically because that's where the issue is coming from because
> that's creating this new pg_temp_XXX table in the regular user
> namespace.
And, to be clear, the new table also doesn't necessairly have
RELPERSISTENCE_TEMP either.
Really is pretty ugly how make_new_heap() operates, it seems...
Thanks!
Stephen