mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
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:
parent
8a99f8a827
commit
fe5038236c
@ -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>
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -53,6 +53,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 201810301
|
||||
#define CATALOG_VERSION_NO 201811011
|
||||
|
||||
#endif
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user