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;