On 2015/04/16 16:05, Etsuro Fujita wrote: > On 2015/03/23 2:57, Tom Lane wrote: >> Etsuro Fujita <fujita.ets...@lab.ntt.co.jp> writes: >>> [ fdw-inh-8.patch ] >> >> I've committed this with some substantial rearrangements, notably: > >> * As I mentioned earlier, I got rid of a few unnecessary restrictions on >> foreign tables so as to avoid introducing warts into inheritance behavior. >> In particular, we now allow NOT VALID CHECK constraints (and hence ALTER >> ... VALIDATE CONSTRAINT), ALTER SET STORAGE, and ALTER SET WITH/WITHOUT >> OIDS. These are probably no-ops anyway for foreign tables, though >> conceivably an FDW might choose to implement some behavior for STORAGE >> or OIDs. > > I agree with you on this point. However, ISTM there is a bug in > handling OIDs on foreign tables; while we now allow for ALTER SET > WITH/WITHOUT OIDS, we still don't allow the default_with_oids parameter > for foreign tables. I think that since CREATE FOREIGN TABLE should be > consistent with ALTER FOREIGN TABLE, we should also allow the parameter > for foreign tables. Attached is a patch for that.
I also updated docs. Attached is an updated version of the patch. Best regards, Etsuro Fujita
*** a/doc/src/sgml/config.sgml --- b/doc/src/sgml/config.sgml *************** *** 6745,6752 **** dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' </term> <listitem> <para> ! This controls whether <command>CREATE TABLE</command> and ! <command>CREATE TABLE AS</command> include an OID column in newly-created tables, if neither <literal>WITH OIDS</literal> nor <literal>WITHOUT OIDS</literal> is specified. It also determines whether OIDs will be included in tables created by --- 6745,6753 ---- </term> <listitem> <para> ! This controls whether <command>CREATE TABLE</command>, ! <command>CREATE TABLE AS</command> and ! <command>CREATE FOREIGN TABLE</command> include an OID column in newly-created tables, if neither <literal>WITH OIDS</literal> nor <literal>WITHOUT OIDS</literal> is specified. It also determines whether OIDs will be included in tables created by *** a/doc/src/sgml/ref/create_foreign_table.sgml --- b/doc/src/sgml/ref/create_foreign_table.sgml *************** *** 293,298 **** CHECK ( <replaceable class="PARAMETER">expression</replaceable> ) --- 293,304 ---- responsibility to ensure that the constraint definition matches reality. </para> + + <para> + To add OIDs to the table created by <command>CREATE FOREIGN TABLE</command>, + enable the <xref linkend="guc-default-with-oids"> configuration + variable. + </para> </refsect1> <refsect1 id="SQL-CREATEFOREIGNTABLE-examples"> *** a/src/backend/commands/tablecmds.c --- b/src/backend/commands/tablecmds.c *************** *** 580,586 **** DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, descriptor = BuildDescForRelation(schema); localHasOids = interpretOidsOption(stmt->options, ! (relkind == RELKIND_RELATION)); descriptor->tdhasoid = (localHasOids || parentOidCount > 0); /* --- 580,587 ---- descriptor = BuildDescForRelation(schema); localHasOids = interpretOidsOption(stmt->options, ! (relkind == RELKIND_RELATION || ! relkind == RELKIND_FOREIGN_TABLE)); descriptor->tdhasoid = (localHasOids || parentOidCount > 0); /*
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers