On Tue, Apr 05, 2016 at 07:10:56PM -0400, Robert Haas wrote:
> On Tue, Apr 5, 2016 at 6:50 PM, David Fetter <[email protected]> wrote:
> > Is there a reason other than lack of tuits for this restriction?
>
> "this" lacks an antecedent.
Try to put a primary key on a materialized view, for example:
CREATE TABLE foo(id SERIAL PRIMARY KEY, t text);
CREATE MATERIALIZED VIEW bar AS SELECT * FROM foo;
REFRESH MATERIALIZED VIEW bar;
ALTER MATERIALIZED VIEW bar ADD PRIMARY KEY(id);
At that last step, you get an error that bar is not a table. You get
an identical error with the hoary old trick of
ALTER TABLE bar ADD PRIMARY KEY(id);
This lack prevents things that depend on primary keys (foreign keys,
logical replication, etc.) from operating on the materialized views.
Cheers,
David.
--
David Fetter <[email protected]> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: [email protected]
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers