Обсуждение: CREATE TEMP TABLE t1 ON COMMIT AS SELECT TRUE::BOOL LIMIT 0;

Поиск
Список
Период
Сортировка

CREATE TEMP TABLE t1 ON COMMIT AS SELECT TRUE::BOOL LIMIT 0;

От
Sean Chittenden
Дата:
In a follow up to my post from two days ago about creating TEMP TABLES,
I noticed what I think is kind of a glaring omission: CREATE TEMP TABLE
AS doesn't support ON COMMIT.  Nothing Earth shattering, but it did
catch me by surprise.  There's also no ALTER TABLE statement that I can
issue to tweak a TEMP table to have it include ON COMMIT behavior after
its been created.  If this isn't low hanging fruit, can someone add it
to the TODO list?  -sc


-- This works
CREATE TEMP TABLE t1 AS SELECT TRUE::BOOL LIMIT 0;

-- This does not
CREATE TEMP TABLE t1 ON COMMIT DROP AS SELECT TRUE::BOOL LIMIT 0;

--
Sean Chittenden

Re: CREATE TEMP TABLE t1 ON COMMIT AS SELECT TRUE::BOOL LIMIT

От
Bruce Momjian
Дата:
Sean Chittenden wrote:
> In a follow up to my post from two days ago about creating TEMP TABLES,
> I noticed what I think is kind of a glaring omission: CREATE TEMP TABLE
> AS doesn't support ON COMMIT.  Nothing Earth shattering, but it did
> catch me by surprise.  There's also no ALTER TABLE statement that I can
> issue to tweak a TEMP table to have it include ON COMMIT behavior after
> its been created.  If this isn't low hanging fruit, can someone add it
> to the TODO list?  -sc
>
>
> -- This works
> CREATE TEMP TABLE t1 AS SELECT TRUE::BOOL LIMIT 0;
>
> -- This does not
> CREATE TEMP TABLE t1 ON COMMIT DROP AS SELECT TRUE::BOOL LIMIT 0;

The problem is that CREATE TABLE ... AS SELECT is actually SELECT INTO
internally, and SELECT doesn't have any on commit behavior.

Added to TODO:

    * Add ON COMMIT capability to CREATE TABLE AS SELECT

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073