Re: Naive schema questions - Mailing list pgsql-general

From Tom Lane
Subject Re: Naive schema questions
Date
Msg-id 12076.1085719659@sss.pgh.pa.us
Whole thread Raw
In response to Re: Naive schema questions  (<btober@computer.org>)
List pgsql-general
<btober@computer.org> writes:
> And where do tables created with "CREATE LOCAL TEMPORARY TABLE..." fit
> into this, like if say a local temp table where created that has the same
> name as an existing normal (i.e., not a local temp) table?

Temp tables live in a schema that is effectively inserted into your
search path ahead of whatever schema(s) are explicitly listed there.
For instance, suppose

    CREATE SCHEMA a;
    SET search_path = a, public;
    CREATE TABLE t1 (...);
    -- t1 is created in schema a
    SELECT * FROM t1;
    -- same as SELECT * FROM a.t1;

Now if I do

    CREATE TEMP TABLE t1 (...);

then SELECT * FROM t1 will reference the temp table ... but I can still
get to the permanent table by explicitly qualifying it as "a.t1".

> And what if I
> do an explicit DROP of the local temp table rather than relying on the
> automatic, end-of-session clean-up?

You drop the temp table.

> Is there any risk of losing the normal table?

Only if you do it twice --- after the initial DROP, the permanent table
would come back "into view".

            regards, tom lane

pgsql-general by date:

Previous
From: Klint Gore
Date:
Subject: query results different after vacuum analyze? 7.4.0
Next
From: Tom Lane
Date:
Subject: Re: query results different after vacuum analyze? 7.4.0