Make default_with_oids default to false -- user-created tables will now
authorNeil Conway
Sun, 13 Mar 2005 09:36:31 +0000 (09:36 +0000)
committerNeil Conway
Sun, 13 Mar 2005 09:36:31 +0000 (09:36 +0000)
no longer include OIDs, unless WITH OIDS is specified or the
default_with_oids configuration parameter is enabled. Update the docs
accordingly.

doc/src/sgml/datatype.sgml
doc/src/sgml/ddl.sgml
doc/src/sgml/plpgsql.sgml
doc/src/sgml/pltcl.sgml
doc/src/sgml/ref/select_into.sgml
doc/src/sgml/runtime.sgml
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample

index 3794aa2f7869a0e13ccece8fa41275a063f9a760..5ca2ab2f61bbad47d225dd92b016f8a27704daf5 100644 (file)
@@ -1,5 +1,5 @@
 
 
  
@@ -2980,12 +2980,12 @@ SELECT * FROM test;
    
     Object identifiers (OIDs) are used internally by
     PostgreSQL as primary keys for various
-    system tables.  An OID system column is also added to user-created
-    tables, unless WITHOUT OIDS is specified when
-    the table is created, or the 
-    configuration variable is set to false.  Type oid
-    represents an object identifier.  There are also several alias
-    types for oid: regproc, regprocedure,
+    system tables.  OIDs are not added to user-created tables, unless
+    WITH OIDS is specified when the table is
+    created, or the 
+    configuration variable is enabled.  Type oid represents
+    an object identifier.  There are also several alias types for
+    oid: regproc, regprocedure,
     regoper, regoperator, regclass, and
     regtype.  shows an
     overview.
@@ -3000,28 +3000,11 @@ SELECT * FROM test;
     references to system tables.
    
 
-   
-    
-     OIDs are included by default in user-created tables in
-     PostgreSQL &version;. However, this
-     behavior is likely to change in a future version of
-     PostgreSQL. Eventually, user-created
-     tables will not include an OID system column unless WITH
-     OIDS is specified when the table is created, or the
-     default_with_oids configuration variable is set
-     to true. If your application requires the presence of an OID
-     system column in a table, it should specify WITH
-     OIDS when that table is created to ensure compatibility
-     with future releases of PostgreSQL.
-    
-   
-
    
     The oid type itself has few operations beyond comparison.
-    It can be cast to
-    integer, however, and then manipulated using the standard integer
-    operators.  (Beware of possible signed-versus-unsigned confusion
-    if you do this.)
+    It can be cast to integer, however, and then manipulated using the
+    standard integer operators.  (Beware of possible
+    signed-versus-unsigned confusion if you do this.)
    
 
    
index 2de8888254fda55cad4101c87d601bc054141716..b0d413bbea81ecfaef44dda80c27897cfa31e5c5 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
  Data Definition
@@ -868,11 +868,10 @@ CREATE TABLE order_items (
        OID
        column
       
-      The object identifier (object ID) of a row.  This is a serial
-      number that is automatically added by
-      PostgreSQL to all table rows (unless
-      the table was created using WITHOUT OIDS, in which
-      case this column is not present).  This column is of type
+      The object identifier (object ID) of a row. This column is only
+      present if the table was created using WITH
+      OIDS, or if the 
+      configuration variable was enabled. This column is of type
       oid (same name as the column); see 
       linkend="datatype-oid"> for more information about the type.
      
index 6284b793b0c5c4a4b35fb5b5c81ffd56a07b9443..77924fd569803615c76c60364d6be693032bb1da 100644 (file)
@@ -1,5 +1,5 @@
 
 
  
@@ -1299,7 +1299,8 @@ GET DIAGNOSTICS variable = item
      the SQL engine, and RESULT_OID,
      the OID of the last row inserted by the most recent
      SQL command.  Note that RESULT_OID
-     is only useful after an INSERT command.
+     is only useful after an INSERT command into a
+     table containing OIDs.
     
 
     
index 1d22035fa9b8dfa242c60bb5befae46df61fba0c..7cb60a3c581f5d934a9d1695d800d8a9d2bcd725 100644 (file)
@@ -1,5 +1,5 @@
 
 
  
@@ -400,8 +400,9 @@ $$ LANGUAGE pltcl;
       
        
         Returns the OID of the row inserted by the last
-        spi_exec or spi_execp,
-        if the command was a single-row INSERT.  (If not, you get zero.)
+        spi_exec or spi_execp, if the
+        command was a single-row INSERT and the modified
+        table contained OIDs.  (If not, you get zero.)
        
       
      
index 11389d190b4224a2280f2f49469b5006fa439e7c..9198a02e4c424747a345823d19e7b7bf7e0d7fd9 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -94,14 +94,13 @@ SELECT [ ALL | DISTINCT [ ON ( expression
   
 
   
-   Prior to PostgreSQL 8.0, the table created by
-   SELECT INTO always included OIDs.
-   As of PostgreSQL 8.0, the
-   inclusion of OIDs in the table created by SELECT
-   INTO is controlled by the
-    configuration variable. This
-   variable currently defaults to true, but will likely default to
-   false in a future release of PostgreSQL.
+   Prior to PostgreSQL 8.1, the table created by
+   SELECT INTO included OIDs by default. In
+   PostgreSQL 8.1, this is not the case
+   — to include OIDs in the new table, the 
+   linkend="guc-default-with-oids"> configuration variable must be
+   enabled. Alternatively, CREATE TABLE AS can be
+   used with the WITH OIDS clause.
   
  
 
index 5ba8b9b2b3c992a19bd2b36c2f3ef9e79cc9d2d5..3517dd58d073ac4724632e11bdf56bcadf30425c 100644 (file)
@@ -1,5 +1,5 @@
 
 
 
@@ -3587,23 +3587,18 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
         newly-created tables, if neither WITH OIDS
         nor WITHOUT OIDS is specified. It also
         determines whether OIDs will be included in tables created by
-        SELECT INTO. In
-        PostgreSQL &version;
-        default_with_oids defaults to true. This is
-        also the behavior of previous versions of
-        PostgreSQL. However, assuming that
-        tables will contain OIDs by default is not encouraged. This
-        option will probably default to false in a future release of
-        PostgreSQL.
-       
-
-       
-        To ease compatibility with applications that make use of OIDs,
-        this option should left enabled. To ease compatibility with
-        future versions of PostgreSQL, this
-        option should be disabled, and applications that require OIDs
-        on certain tables should explicitly specify WITH
-        OIDS when those tables are created.
+        SELECT INTO. In PostgreSQL
+        8.1 default_with_oids is disabled by default; in
+        prior versions of PostgreSQL, it was true by default.
+       
+
+       
+        The use of OIDs in user tables is considered deprecated, so
+        most installations should leave this variable disabled.
+        Applications that require OIDs for a particular table should
+        specify WITH OIDS when creating the
+        table. This variable can be enabled for compatibility with old
+        applications that do not follow this behavior.
        
       
      
index b9486e866383f7d907de0b9aa5956ee7056cdd3d..67374a4b61f1c0d68be0d6a4ea7181b58c322e98 100644 (file)
@@ -10,7 +10,7 @@
  * Written by Peter Eisentraut .
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.254 2005/03/04 20:21:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.255 2005/03/13 09:36:31 neilc Exp $
  *
  *--------------------------------------------------------------------
  */
@@ -139,7 +139,7 @@ bool        Australian_timezones = false;
 
 bool       Password_encryption = true;
 
-bool       default_with_oids = true;
+bool       default_with_oids = false;
 
 int            log_min_error_statement = PANIC;
 int            log_min_messages = NOTICE;
@@ -801,11 +801,11 @@ static struct config_bool ConfigureNamesBool[] =
    },
    {
        {"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
-           gettext_noop("By default, newly-created tables should have OIDs."),
+           gettext_noop("Create new tables with OIDs by default."),
            NULL
        },
        &default_with_oids,
-       true, NULL, NULL
+       false, NULL, NULL
    },
    {
        {"redirect_stderr", PGC_POSTMASTER, LOGGING_WHERE,
index 74a029e65744f5e7536ca9474aebae48a66838c2..070d1e7632eecfd2242293f55b7f09fc80232d71 100644 (file)
 #add_missing_from = true
 #regex_flavor = advanced   # advanced, extended, or basic
 #sql_inheritance = true
-#default_with_oids = true
+#default_with_oids = false
 
 # - Other Platforms & Clients -