Re: Convert table to view 9.1

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: salah jubeh <s_jubeh(at)yahoo(dot)com>
Cc: pgsql <pgsql-general(at)postgresql(dot)org>
Subject: Re: Convert table to view 9.1
Date: 2013-12-11 15:50:22
Message-ID: 16374.1386777022@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

salah jubeh <s_jubeh(at)yahoo(dot)com> writes:
> create table a (id int primary key);
> create table b (id int primary key, a_id int references a (id));

> insert into a values (1);
> insert into b values (1,1);

> create table c AS SELECT * FROM b;

> TRUNCATE b;
> ALTER TABLE b DROP CONSTRAINT b_a_id_fkey;
> ALTER TABLE b DROP CONSTRAINT b_pkey;
> ALTER TABLE b ALTER COLUMN id DROP NOT NULL;
>
> CREATE RULE "_RETURN" AS ON SELECT TO b DO INSTEAD SELECT * FROM C;

Patient: Doctor, it hurts when I do this.
Doctor: So, don't do that.

Why would you think this is a good thing to do? Why not just rename
table b to c, and then create the view as b?

(For context, it's not even considered a supported operation to
manually create _RETURN rules like that. Any arbitrary restrictions
we might put on transforming tables to views are perfectly legitimate
IMHO, because the only case we care about supporting is pg_dump's
usage of this hack to break circular dependencies between views.
And in that case, the "table" never had any table-only features.)

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sameer Kumar 2013-12-11 15:55:37 Re: Trigger Firing Order
Previous Message Kevin Grittner 2013-12-11 15:48:20 Re: Trigger Firing Order