public inbox for [email protected]  
help / color / mirror / Atom feed
From: Bruce Momjian <[email protected]>
To: David Johnston <[email protected]>
Cc: [email protected]
Subject: Re: Create Table ... Like Including Default & Sequences
Date: Sat, 25 Jan 2014 14:33:21 -0500
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
List-Unsubscribe: <mailto:[email protected]?body=unsub%20pgsql-docs>

On Thu, Jun 13, 2013 at 07:20:05PM -0700, David Johnston wrote:
> In the documentation for "Create Table" the following paragraph appears under
> the definition for LIKE:
> 
> "Default expressions for the copied column definitions will only be copied
> if INCLUDING DEFAULTS is specified. The default behavior is to exclude
> default expressions, resulting in the copied columns in the new table having
> null defaults."
> 
> I would like to suggest adding a sentence between the first and second:
> 
> Defaults created via the "serial" and "bigserial" construct - or that use
> "nextval(...)" generally - are copied as-is resulting in both tables sharing
> the same underlying sequence.
> 
> Note that this is technically contrary to the statement:
> 
> Unlike INHERITS, the new table and original table are completely decoupled
> after creation is complete.
> 
> I'm working in 9.0 and noticed this incidentally when a FK constraint failed
> but the expected ID was somewhere in the 10s while the actual was somewhere
> upward of 80,000 which clued me into the fact that the original sequence was
> being used.
> 
> As an aside it may be worth noting (or linking to) a quick way to change the
> default on the new table if this is done in error and a correction is
> desired.  For my purposes I'll likely just leave it alone.

Oh, that is something I had not considered.  I have applied the attached
doc patch for 9.4.

-- 
  Bruce Momjian  <[email protected]>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +


-- 
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs


Attachments:

  [text/x-diff] like.diff (1.1K, 2-like.diff)
  download | inline diff:
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
new file mode 100644
index a422edd..e0b8a4e
*** a/doc/src/sgml/ref/create_table.sgml
--- b/doc/src/sgml/ref/create_table.sgml
*************** CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY
*** 329,335 ****
       </para>
       <para>
        Default expressions for the copied column definitions will only be
!       copied if <literal>INCLUDING DEFAULTS</literal> is specified.  The
        default behavior is to exclude default expressions, resulting in the
        copied columns in the new table having null defaults.
       </para>
--- 329,338 ----
       </para>
       <para>
        Default expressions for the copied column definitions will only be
!       copied if <literal>INCLUDING DEFAULTS</literal> is specified. 
!       Defaults that call database-modification functions, like
!       <function>nextval</>, create a linkage between the original and
!       new tables.  The
        default behavior is to exclude default expressions, resulting in the
        copied columns in the new table having null defaults.
       </para>


view thread (2+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: Create Table ... Like Including Default & Sequences
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox