Re: ALTER TYPE 2: skip already-provable no-work rewrites

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2011-02-06T13:58:30Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Change ALTER TABLE SET WITHOUT OIDS to rewrite the whole table to physically

On Sun, Feb 06, 2011 at 08:40:44AM -0500, Noah Misch wrote:
> On Sun, Feb 06, 2011 at 07:54:52AM -0500, Robert Haas wrote:
> > Yeeeeeeah, that's actually a little ugly.   It's actually a domain
> > over a composite type, not a composite type proper, IIUC. Better
> > ideas?
> 
> There are no domains over composite types.  get_rels_with_domain() finds all
> relations having columns of the (scalar) domain type.  It then calls
> find_composite_type_dependencies to identify uses of the composite types
> discovered in the previous step.
> 
> Honestly, RELKIND_COMPOSITE_TYPE is a reasonable choice despite the technical
> mismatch.  One more-correct approach would be to have two arguments, a catalog
> OID (pg_type or pg_class, currently) and a relkind, 0 when the catalog OID !=
> pg_class.  Might be an improvement, albeit a minor one.

Scratch that.  How about classid and objid arguments, passing them to
getObjectionDescription() internally?  We already do something very similar in
ATExecAlterColumnType for a related case.