Remove obsolete pg_attrdef.adsrc column

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>
This commit is contained in:
Peter Eisentraut 2018-10-27 11:25:20 +01:00
parent 8a99f8a827
commit fe5038236c
4 changed files with 4 additions and 31 deletions

View File

@ -947,27 +947,13 @@
<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>

View 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

View File

@ -53,6 +53,6 @@
*/
/* yyyymmddN */
#define CATALOG_VERSION_NO 201810301
#define CATALOG_VERSION_NO 201811011
#endif

View 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;