Re: Typed table DDL loose ends

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Typed table DDL loose ends
Date: 2011-04-18 19:44:53
Message-ID: 1303155893.14718.6.camel@vanquo.pezone.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, 2011-04-09 at 21:57 -0400, Noah Misch wrote:
> * Table row types used in typed tables vs. ALTER TABLE

This item was addressed, but the other ones were not, I think.

> * Inheriting from a typed table blocks further type DDL
> CREATE TYPE t AS (x int);
> CREATE TABLE parent OF t;
> CREATE TABLE child () INHERITS (parent);
> ALTER TYPE t ADD ATTRIBUTE y int CASCADE;
> -- ERROR: column must be added to child tables too
> We ought to just set INH_YES on the downstream command in ATTypedTableRecursion.
> If we get to that point, the user did choose ALTER TYPE CASCADE; it seems fair
> to assume he'd want inheritance recursion rather than a later error.

Agreed.

> * Users can CREATE TABLE OF on a type they don't own
> This in turns blocks the owner's ability to alter the table/type. However, we
> already have this hazard with composite-type columns. A TODO to address this
> broadly seems in order, but it's not a 9.1 issue.

I think we should change that to mirror the inheritance policy: you have
to be the owner of the "parent". Note that this is newly relevant in
9.1, because you couldn't change composite types before.

> * Can create a permanent table using a temp table row type
> CREATE TEMP TABLE tempt ();
> CREATE TABLE permt OF tempt; -- silently dropped on session exit
> Looks easy to fix, with no policy questions.

This is now prohibited.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2011-04-18 19:52:47 Re: Open issues for collations
Previous Message Josh Berkus 2011-04-18 19:17:19 Re: Formatting Curmudgeons WAS: MMAP Buffers