]> granicus.if.org Git - postgresql/commitdiff
Remove obsolete pg_attrdef.adsrc column
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 27 Oct 2018 10:25:20 +0000 (11:25 +0100)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 1 Nov 2018 19:35:42 +0000 (20:35 +0100)
This has been deprecated and effectively unused for a long time.

Reviewed-by: Alvaro Herrera <alvherre@2ndquadrant.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
doc/src/sgml/catalogs.sgml
src/backend/catalog/heap.c
src/include/catalog/catversion.h
src/include/catalog/pg_attrdef.h

index 4256516c0857fe7c5a673b48535b0a743a65da5b..e7165bdc5d53820601c39582c71b11b01c1159ac 100644 (file)
       <entry><structfield>adbin</structfield></entry>
       <entry><type>pg_node_tree</type></entry>
       <entry></entry>
-      <entry>The internal representation of the column default value</entry>
-     </row>
-
-     <row>
-      <entry><structfield>adsrc</structfield></entry>
-      <entry><type>text</type></entry>
-      <entry></entry>
-      <entry>A human-readable representation of the default value</entry>
+      <entry>The column default value, in <function>nodeToString()</function>
+      representation.  Use <literal>pg_get_expr(adbin, adrelid)</literal> to
+      convert it to an SQL expression.</entry>
      </row>
     </tbody>
    </tgroup>
   </table>
-
-   <para>
-    The <structfield>adsrc</structfield> field is historical, and is best
-    not used, because it does not track outside changes that might affect
-    the representation of the default value.  Reverse-compiling the
-    <structfield>adbin</structfield> field (with <function>pg_get_expr</function> for
-    example) is a better way to display the default value.
-   </para>
-
  </sect1>
 
 
index 3c9c03c99717461dae178db0b00d4c2147210239..640e283688b1c6ec510b1b53b89d93e4c6f4680e 100644 (file)
@@ -2152,7 +2152,6 @@ StoreAttrDefault(Relation rel, AttrNumber attnum,
                                 Node *expr, bool is_internal, bool add_column_mode)
 {
        char       *adbin;
-       char       *adsrc;
        Relation        adrel;
        HeapTuple       tuple;
        Datum           values[4];
@@ -2169,21 +2168,12 @@ StoreAttrDefault(Relation rel, AttrNumber attnum,
         */
        adbin = nodeToString(expr);
 
-       /*
-        * Also deparse it to form the mostly-obsolete adsrc field.
-        */
-       adsrc = deparse_expression(expr,
-                                                          deparse_context_for(RelationGetRelationName(rel),
-                                                                                                  RelationGetRelid(rel)),
-                                                          false, false);
-
        /*
         * Make the pg_attrdef entry.
         */
        values[Anum_pg_attrdef_adrelid - 1] = RelationGetRelid(rel);
        values[Anum_pg_attrdef_adnum - 1] = attnum;
        values[Anum_pg_attrdef_adbin - 1] = CStringGetTextDatum(adbin);
-       values[Anum_pg_attrdef_adsrc - 1] = CStringGetTextDatum(adsrc);
 
        adrel = heap_open(AttrDefaultRelationId, RowExclusiveLock);
 
@@ -2198,10 +2188,8 @@ StoreAttrDefault(Relation rel, AttrNumber attnum,
 
        /* now can free some of the stuff allocated above */
        pfree(DatumGetPointer(values[Anum_pg_attrdef_adbin - 1]));
-       pfree(DatumGetPointer(values[Anum_pg_attrdef_adsrc - 1]));
        heap_freetuple(tuple);
        pfree(adbin);
-       pfree(adsrc);
 
        /*
         * Update the pg_attribute entry for the column to show that a default
index f2e9d5dc1f072160db043caff0a26ea7292e6df6..8e92b287cc2a2c29829a1bc76d7670eeb63691ff 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     201810301
+#define CATALOG_VERSION_NO     201811011
 
 #endif
index e4a37ec32688f641cb8633be0b795a3ada9608d8..a9a2351efdd0b12c223eaee0aede60f25c5d64bd 100644 (file)
@@ -33,7 +33,6 @@ CATALOG(pg_attrdef,2604,AttrDefaultRelationId)
 
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        pg_node_tree adbin BKI_FORCE_NOT_NULL;                  /* nodeToString representation of default */
-       text            adsrc BKI_FORCE_NOT_NULL;                       /* human-readable representation of default */
 #endif
 } FormData_pg_attrdef;