Thanks, I am looking at the new version from Bernd's git repo. One problem I noticed is that it doesn't really work correctly for all callers of heap_create_with_catalog -- you're only passing the cooked not null constraints in DefineRelation, but there are some other places that call heap_create_with_catalog too. In particular, bootstrap mode is not handled; I haven't checked the other callers yet. I'm looking for the best way to handle that.
So, question: do we need pg_constraint rows to exist for all NOT NULL constraints, including those in system catalogs, and including those in bootstrap catalogs? If we're going to require that, we're going to need to add a few initial data lines to the pg_constraint catalog definition, plus some code to handle the other bootstrap cases (non bootstrap relations). We could also declare that we don't need pg_constraint rows for NOT NULL constraints in system catalogs; but if we're going to do that, I guess we'd better disallow tables from inheriting system catalogs. Right now it's not disallowed but I guess it's pretty useless alvherre=# create table bar() inherits (pg_class); CREATE TABLE ... on the other hand, being able to use a catalog in a LIKE column definition sounds like it could be useful: alvherre=# create table qux (now timestamp, like pg_class); CREATE TABLE alvherre=# \d qux Tabla «public.qux» Columna | Tipo | Modificadores ----------------+-----------------------------+--------------- now | timestamp without time zone | relname | name | not null relnamespace | oid | not null reltype | oid | not null -- Álvaro Herrera <alvhe...@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers