rdbms: Remove references to pg_attrdef.adsrc in Postgres code
authorJeff Janes <jeff.janes@gmail.com>
Thu, 17 Jan 2019 23:41:51 +0000 (18:41 -0500)
committerZoranzoki21 <zorandori4444@gmail.com>
Mon, 11 Nov 2019 20:05:27 +0000 (20:05 +0000)
commit2cecc8d7be6213c7d03d072882b51680e94e06db
tree52a55265300ec1c26d0669de206fef067f33c63e
parent5bbace1a3667997a6ecc94c2d7259615bdc4176c
rdbms: Remove references to pg_attrdef.adsrc in Postgres code

PostgreSQL v12 will remove the long-deprecated column
pg_attrdef.adsrc.  The supported way to introspect into column
default values is pg_get_expr(adbin, adrelid), which works
back through all versions of PostgreSQL supported by wikimedia.

Changing to the supported method will allow the upcoming v12 of the
database to be used while maintaining compatibility with older
versions, without needing to write version-specific code.

This patch has been tested with maintenance/update.php and
with phpunit in PostgreSQL versions 9.2, 11, and 12dev.  It does
not harm the first two, and fixes errors that would otherwise
arise in the dev version.  All unit tests which pass under version
11 now pass under 12dev as well.

Bug: T237931
Change-Id: I874d347fd286b26773113d4f0c6c30d9a4055ad3
(cherry picked from commit 27d342ef4bd31da48b0e10655daf1320e3d00b50)
includes/libs/rdbms/database/DatabasePostgres.php
includes/libs/rdbms/field/PostgresField.php