Compare commits
No commits in common. 'c9' and 'i8c-stream-3.7' have entirely different histories.
c9
...
i8c-stream
@ -1 +1 @@
|
|||||||
SOURCES/DBD-Pg-3.14.2.tar.gz
|
SOURCES/DBD-Pg-3.7.4.tar.gz
|
||||||
|
@ -1 +1 @@
|
|||||||
fa4a3107df9fffa984383502b6bed3b129e0f6c2 SOURCES/DBD-Pg-3.14.2.tar.gz
|
6f0598fef195203057bae7947859590e8b79e497 SOURCES/DBD-Pg-3.7.4.tar.gz
|
||||||
|
@ -0,0 +1,72 @@
|
|||||||
|
From fe47b5e148a79d0d8935293bdc05cd4444ca87cd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dagfinn Ilmari Mannsaker <ilmari@sid.internal>
|
||||||
|
Date: Tue, 9 Apr 2019 17:44:38 +0100
|
||||||
|
Subject: [PATCH] Adjust tests for removal of WITH OIDS in PostgreSQL 12
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Petr Písař: Ported to 3.7.4 from
|
||||||
|
ab1808c7b9cbac7099972105ec59b56e7d6ed5a6.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
t/03dbmethod.t | 12 +++++++-----
|
||||||
|
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/t/03dbmethod.t b/t/03dbmethod.t
|
||||||
|
index a89a054..97f375e 100644
|
||||||
|
--- a/t/03dbmethod.t
|
||||||
|
+++ b/t/03dbmethod.t
|
||||||
|
@@ -757,6 +757,8 @@ $sth = $dbh->statistics_info(undef,undef,'dbd_pg_test9',undef,undef);
|
||||||
|
is ($sth, undef, $t);
|
||||||
|
|
||||||
|
|
||||||
|
+my $with_oids = $pgversion < 120000 ? 'WITH OIDS' : '';
|
||||||
|
+my $hash_index_idx = $with_oids ? 5 : 4;
|
||||||
|
## Create some tables with various indexes
|
||||||
|
{
|
||||||
|
local $SIG{__WARN__} = sub {};
|
||||||
|
@@ -772,10 +774,10 @@ is ($sth, undef, $t);
|
||||||
|
$dbh->do("CREATE TABLE $table2 (a INT, b INT, c INT, PRIMARY KEY(a,b), UNIQUE(b,c))");
|
||||||
|
$dbh->do("CREATE INDEX dbd_pg_test2_expr ON $table2(c,(a+b))");
|
||||||
|
|
||||||
|
- $dbh->do("CREATE TABLE $table3 (a INT, b INT, c INT, PRIMARY KEY(a)) WITH OIDS");
|
||||||
|
+ $dbh->do("CREATE TABLE $table3 (a INT, b INT, c INT, PRIMARY KEY(a)) $with_oids");
|
||||||
|
$dbh->do("CREATE UNIQUE INDEX dbd_pg_test3_index_b ON $table3(b)");
|
||||||
|
$dbh->do("CREATE INDEX dbd_pg_test3_index_c ON $table3 USING hash(c)");
|
||||||
|
- $dbh->do("CREATE INDEX dbd_pg_test3_oid ON $table3(oid)");
|
||||||
|
+ $dbh->do("CREATE INDEX dbd_pg_test3_oid ON $table3(oid)") if $with_oids;
|
||||||
|
$dbh->do("CREATE UNIQUE INDEX dbd_pg_test3_pred ON $table3(c) WHERE c > 0 AND c < 45");
|
||||||
|
$dbh->commit();
|
||||||
|
}
|
||||||
|
@@ -801,7 +803,7 @@ one => [
|
||||||
|
[ undef, $schema, $table3, '0', undef, 'dbd_pg_test3_index_b', 'btree', 1, 'b', 'A', '0', '1', undef, 'b' ],
|
||||||
|
[ undef, $schema, $table3, '0', undef, 'dbd_pg_test3_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a' ],
|
||||||
|
[ undef, $schema, $table3, '0', undef, 'dbd_pg_test3_pred', 'btree', 1, 'c', 'A', '0', '1', '((c > 0) AND (c < 45))', 'c' ],
|
||||||
|
- [ undef, $schema, $table3, '1', undef, 'dbd_pg_test3_oid', 'btree', 1, 'oid', 'A', '0', '1', undef, 'oid' ],
|
||||||
|
+ ($with_oids ? [ undef, $schema, $table3, '1', undef, 'dbd_pg_test3_oid', 'btree', 1, 'oid', 'A', '0', '1', undef, 'oid' ] : ()),
|
||||||
|
[ undef, $schema, $table3, '1', undef, 'dbd_pg_test3_index_c', 'hashed', 1, 'c', 'A', '0', '4', undef, 'c' ],
|
||||||
|
],
|
||||||
|
three_uo => [
|
||||||
|
@@ -834,7 +836,7 @@ $t="Correct stats output for $table3";
|
||||||
|
$sth = $dbh->statistics_info(undef,$schema,$table3,undef,undef);
|
||||||
|
$stats = $sth->fetchall_arrayref;
|
||||||
|
## Too many intra-version differences to try for an exact number here:
|
||||||
|
-$correct_stats->{three}[5][11] = $stats->[5][11] = 0;
|
||||||
|
+$correct_stats->{three}[$hash_index_idx][11] = $stats->[$hash_index_idx][11] = 0;
|
||||||
|
is_deeply ($stats, $correct_stats->{three}, $t);
|
||||||
|
|
||||||
|
$t="Correct stats output for $table3 (unique only)";
|
||||||
|
@@ -856,7 +858,7 @@ is_deeply ($stats, $correct_stats->{three_uo}, $t);
|
||||||
|
$t="Correct stats output for $table3";
|
||||||
|
$sth = $dbh->statistics_info(undef,undef,$table3,undef,undef);
|
||||||
|
$stats = $sth->fetchall_arrayref;
|
||||||
|
- $correct_stats->{three}[5][11] = $stats->[5][11] = 0;
|
||||||
|
+ $correct_stats->{three}[$hash_index_idx][11] = $stats->[$hash_index_idx][11] = 0;
|
||||||
|
is_deeply ($stats, $correct_stats->{three}, $t);
|
||||||
|
|
||||||
|
$t="Correct stats output for $table3 (unique only)";
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
From 5c5269ef7e9c3db2d6090c411e5aa71fffdc4c04 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dagfinn Ilmari Mannsaker <ilmari@sid.internal>
|
||||||
|
Date: Tue, 9 Apr 2019 17:49:10 +0100
|
||||||
|
Subject: [PATCH] Don't try to silence ERRORs in test
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
PostrgreSQL 12 no longer allows setting client_min_messages='FATAL',
|
||||||
|
and ERROR is sufficient in this case anyway.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
t/04misc.t | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/t/04misc.t b/t/04misc.t
|
||||||
|
index f739f8a..21b9261 100644
|
||||||
|
--- a/t/04misc.t
|
||||||
|
+++ b/t/04misc.t
|
||||||
|
@@ -113,7 +113,7 @@ $BC$
|
||||||
|
|
||||||
|
is( $sth->err, undef, q{Statement attribute 'err' is initially undef});
|
||||||
|
|
||||||
|
- $dbh->do(q{SET client_min_messages = 'FATAL'});
|
||||||
|
+ $dbh->do(q{SET client_min_messages = 'ERROR'});
|
||||||
|
|
||||||
|
TODO: {
|
||||||
|
local $TODO = q{Known bug: notice and warnings should set err to 6};
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,50 @@
|
|||||||
|
From 2b60151aea6f03ac7e846aae0d21e7f335cad99c Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
|
||||||
|
Date: Wed, 9 Jan 2019 21:24:09 +0000
|
||||||
|
Subject: [PATCH] Fix client_min_messages=FATAL test on upcoming PostgreSQL
|
||||||
|
releases
|
||||||
|
|
||||||
|
The upcoming minor releases of PostgreSQL cap client_min_messages to
|
||||||
|
ERROR to avoid the case this test was testing for. Skip the test if
|
||||||
|
client_min_messages doesn't come back as 'fatal' after we set it.
|
||||||
|
---
|
||||||
|
t/02attribs.t | 23 ++++++++++++++---------
|
||||||
|
1 file changed, 14 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/t/02attribs.t b/t/02attribs.t
|
||||||
|
index b9ecd90..75e8f48 100644
|
||||||
|
--- a/t/02attribs.t
|
||||||
|
+++ b/t/02attribs.t
|
||||||
|
@@ -1204,15 +1204,20 @@ $sth->execute();
|
||||||
|
is ($warning, undef, $t);
|
||||||
|
|
||||||
|
## Special case in which errors are not sent to the client!
|
||||||
|
-$t = q{When client_min_messages is FATAL, we do our best to alert the caller it's a Bad Idea};
|
||||||
|
-$dbh->do(q{SET client_min_messages = 'FATAL'});
|
||||||
|
-$dbh->{RaiseError} = 0;
|
||||||
|
-$dbh->{AutoCommit} = 1;
|
||||||
|
-eval {
|
||||||
|
- $dbh->do('SELECT 1 FROM nonesuh');
|
||||||
|
-};
|
||||||
|
-my $errorstring = $dbh->errstr;
|
||||||
|
-like ( $errorstring, qr/Perhaps client_min_messages/, $t);
|
||||||
|
+SKIP: {
|
||||||
|
+ $t = q{When client_min_messages is FATAL, we do our best to alert the caller it's a Bad Idea};
|
||||||
|
+ $dbh->do(q{SET client_min_messages = 'FATAL'});
|
||||||
|
+ skip "This version of PostgreSQL caps client_min_messages to ERROR", 1
|
||||||
|
+ unless $dbh->selectrow_array('SHOW client_min_messages') eq 'fatal';
|
||||||
|
+
|
||||||
|
+ $dbh->{RaiseError} = 0;
|
||||||
|
+ $dbh->{AutoCommit} = 1;
|
||||||
|
+ eval {
|
||||||
|
+ $dbh->do('SELECT 1 FROM nonesuh');
|
||||||
|
+ };
|
||||||
|
+ my $errorstring = $dbh->errstr;
|
||||||
|
+ like ( $errorstring, qr/Perhaps client_min_messages/, $t);
|
||||||
|
+}
|
||||||
|
$dbh->rollback();
|
||||||
|
$dbh->do(q{SET client_min_message = 'NOTICE'});
|
||||||
|
$dbh->{RaiseError} = 1;
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
From c1eadf4e3dd49a344b38d70a46bd66c2d749e65f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
|
||||||
|
Date: Tue, 9 Apr 2019 18:50:35 +0100
|
||||||
|
Subject: [PATCH] Fix ->ping error detection on PostgreSQL 12
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
The libpq write error handling was revamped in PostgreSQL 12, so it
|
||||||
|
can return a non-NULL pointer even if it encouters a fatal error.
|
||||||
|
|
||||||
|
Instead rely on PQresultStatus() to detect fatal errors (including
|
||||||
|
NULL pointers).
|
||||||
|
|
||||||
|
Petr Písař: Ported to 3.7.4 from 3e1a89a8e5557607932e57b85a2bbc875c2821b6.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dbdimp.c | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dbdimp.c b/dbdimp.c
|
||||||
|
index f5c8703..0f7941a 100644
|
||||||
|
--- a/dbdimp.c
|
||||||
|
+++ b/dbdimp.c
|
||||||
|
@@ -493,19 +493,19 @@ int dbd_db_ping (SV * dbh)
|
||||||
|
tstatus = pg_db_txn_status(aTHX_ imp_dbh);
|
||||||
|
if (TRACE5_slow) TRC(DBILOGFP, "%sdbd_db_ping txn_status is %d\n", THEADER_slow, tstatus);
|
||||||
|
|
||||||
|
- if (tstatus >= 4) { /* Unknown, so we err on the side of "bad" */
|
||||||
|
+ if (tstatus >= PQTRANS_UNKNOWN) { /* Unknown, so we err on the side of "bad" */
|
||||||
|
if (TEND_slow) TRC(DBILOGFP, "%sEnd dbd_pg_ping (result: -2 unknown/bad)\n", THEADER_slow);
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* No matter what state we are in, send an empty query to the backend */
|
||||||
|
result = PQexec(imp_dbh->conn, "/* DBD::Pg ping test v3.7.4 */");
|
||||||
|
- if (NULL == result) {
|
||||||
|
+ status = PQresultStatus(result);
|
||||||
|
+ PQclear(result);
|
||||||
|
+ if (PGRES_FATAL_ERROR == status) {
|
||||||
|
/* Something very bad, usually indicating the backend is gone */
|
||||||
|
return -3;
|
||||||
|
}
|
||||||
|
- status = PQresultStatus(result);
|
||||||
|
- PQclear(result);
|
||||||
|
|
||||||
|
/* We expect to see an empty query most times */
|
||||||
|
if (PGRES_EMPTY_QUERY == status) {
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
From 575c869da97a9f387cb26016f521e02b2708eb71 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Erik Rijkers <er@xs4all.nl>
|
||||||
|
Date: Mon, 8 Apr 2019 21:53:17 -0400
|
||||||
|
Subject: [PATCH] Fix test to allow for changed message of pg_ctl output. CPAN
|
||||||
|
RT #128966
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
t/dbdpg_test_setup.pl | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/t/dbdpg_test_setup.pl b/t/dbdpg_test_setup.pl
|
||||||
|
index 24f44ab..8dd17a2 100644
|
||||||
|
--- a/t/dbdpg_test_setup.pl
|
||||||
|
+++ b/t/dbdpg_test_setup.pl
|
||||||
|
@@ -331,7 +331,7 @@ version: $version
|
||||||
|
$info = qx{$pg_ctl --help 2>&1};
|
||||||
|
};
|
||||||
|
last GETHANDLE if $@; ## Fail - pg_ctl bad
|
||||||
|
- if (!defined $info or ($info !~ /\@postgresql\.org/ and $info !~ /run as root/)) {
|
||||||
|
+ if (!defined $info or ($info !~ /\@[a-z.-]*?postgresql\.org/ and $info !~ /run as root/)) {
|
||||||
|
$@ = defined $initdb ? "Bad pg_ctl output: $info" : 'Bad pg_ctl output';
|
||||||
|
last GETHANDLE; ## Fail - pg_ctl bad
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From c73d40c6e219621c4bdc1fe9cadd52b7f09e8560 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
|
||||||
|
Date: Mon, 31 Dec 2018 18:45:57 +0100
|
||||||
|
Subject: [PATCH] Inline no-longer-conditional catalog query fragments
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Some bits of catalog queries needed version-specific variants, but when
|
||||||
|
support for the versions that necessitated them was removed, the
|
||||||
|
variables were left in place. This removes these now-unnecessary
|
||||||
|
variables and puts the SQL fragments back in the query.
|
||||||
|
|
||||||
|
The pg_get_expr() call does not need to be conditional, it exists in 7.4
|
||||||
|
too: https://www.postgresql.org/docs/7.4/functions-misc.html
|
||||||
|
|
||||||
|
Petr Písař: Ported to 3.7.4 from
|
||||||
|
c7ea8fd90b5fc09f28e090e0e00cbb2708eda4cc.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
Pg.pm | 14 +++-----------
|
||||||
|
1 file changed, 3 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Pg.pm b/Pg.pm
|
||||||
|
index 9c664e9..5658d1b 100644
|
||||||
|
--- a/Pg.pm
|
||||||
|
+++ b/Pg.pm
|
||||||
|
@@ -443,14 +443,6 @@ use 5.008001;
|
||||||
|
|
||||||
|
my $whereclause = join "\n\t\t\t\tAND ", '', @search;
|
||||||
|
|
||||||
|
- my $schemajoin = 'JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace)';
|
||||||
|
-
|
||||||
|
- my $remarks = 'pg_catalog.col_description(a.attrelid, a.attnum)';
|
||||||
|
-
|
||||||
|
- my $column_def = $dbh->{private_dbdpg}{version} >= 80000
|
||||||
|
- ? 'pg_catalog.pg_get_expr(af.adbin, af.adrelid)'
|
||||||
|
- : 'af.adsrc';
|
||||||
|
-
|
||||||
|
my $col_info_sql = qq!
|
||||||
|
SELECT
|
||||||
|
NULL::text AS "TABLE_CAT"
|
||||||
|
@@ -464,8 +456,8 @@ use 5.008001;
|
||||||
|
, NULL::text AS "DECIMAL_DIGITS"
|
||||||
|
, NULL::text AS "NUM_PREC_RADIX"
|
||||||
|
, CASE a.attnotnull WHEN 't' THEN 0 ELSE 1 END AS "NULLABLE"
|
||||||
|
- , $remarks AS "REMARKS"
|
||||||
|
- , $column_def AS "COLUMN_DEF"
|
||||||
|
+ , pg_catalog.col_description(a.attrelid, a.attnum) AS "REMARKS"
|
||||||
|
+ , pg_catalog.pg_get_expr(af.adbin, af.adrelid) AS "COLUMN_DEF"
|
||||||
|
, NULL::text AS "SQL_DATA_TYPE"
|
||||||
|
, NULL::text AS "SQL_DATETIME_SUB"
|
||||||
|
, NULL::text AS "CHAR_OCTET_LENGTH"
|
||||||
|
@@ -486,7 +478,7 @@ use 5.008001;
|
||||||
|
JOIN pg_catalog.pg_attribute a ON (t.oid = a.atttypid)
|
||||||
|
JOIN pg_catalog.pg_class c ON (a.attrelid = c.oid)
|
||||||
|
LEFT JOIN pg_catalog.pg_attrdef af ON (a.attnum = af.adnum AND a.attrelid = af.adrelid)
|
||||||
|
- $schemajoin
|
||||||
|
+ JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace)
|
||||||
|
WHERE
|
||||||
|
a.attnum >= 0
|
||||||
|
AND c.relkind IN ('r','v','m')
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,37 @@
|
|||||||
|
From 88d2f8f1fc95bcd16e95d3fc667783fb7a9ab05b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
|
||||||
|
Date: Fri, 11 Jan 2019 23:47:29 +0000
|
||||||
|
Subject: [PATCH] Remove usage of deprecated pg_attrdef.adsrc column
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
It doesn't track outside change that might affect the representation,
|
||||||
|
and will be removed in PostgreSQL 12.
|
||||||
|
|
||||||
|
Petr Písař: Ported to 3.7.4 from 88d2f8f1fc95bcd16e95d3fc667783fb7a9ab05b.
|
||||||
|
---
|
||||||
|
Pg.pm | 4 ++--
|
||||||
|
|
||||||
|
diff --git a/Pg.pm b/Pg.pm
|
||||||
|
index 2b46800..0ffe083 100644
|
||||||
|
--- a/Pg.pm
|
||||||
|
+++ b/Pg.pm
|
||||||
|
@@ -349,12 +349,12 @@ use 5.008001;
|
||||||
|
$oid =~ /(\d+)/ or die qq{OID was not numeric?!?\n};
|
||||||
|
$oid = $1;
|
||||||
|
## This table has a primary key. Is there a sequence associated with it via a unique, indexed column?
|
||||||
|
- $SQL = "SELECT a.attname, i.indisprimary, pg_catalog.pg_get_expr(adbin,adrelid)\n".
|
||||||
|
+ $SQL = "SELECT a.attname, i.indisprimary, pg_catalog.pg_get_expr(d.adbin, d.adrelid)\n".
|
||||||
|
"FROM pg_catalog.pg_index i, pg_catalog.pg_attribute a, pg_catalog.pg_attrdef d\n ".
|
||||||
|
"WHERE i.indrelid = $oid AND d.adrelid=a.attrelid AND d.adnum=a.attnum\n".
|
||||||
|
" AND a.attrelid = $oid AND i.indisunique IS TRUE\n".
|
||||||
|
" AND a.atthasdef IS TRUE AND i.indkey[0]=a.attnum\n".
|
||||||
|
- q{ AND d.adsrc ~ '^nextval'};
|
||||||
|
+ " AND pg_catalog.pg_get_expr(d.adbin, d.adrelid) ~ '^nextval'";
|
||||||
|
$sth = $dbh->prepare($SQL);
|
||||||
|
$count = $sth->execute();
|
||||||
|
if (!defined $count or $count eq '0E0') {
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
From 35080ce5535e233428a7e17320e111962daec7e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dagfinn Ilmari Mannsaker <ilmari@sid.internal>
|
||||||
|
Date: Tue, 9 Apr 2019 17:40:55 +0100
|
||||||
|
Subject: [PATCH] Remove usage of deprecated pg_constraint.consrc column
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
It doesn't track outside change that might affect the representation,
|
||||||
|
and will be removed in PostgreSQL 12.
|
||||||
|
|
||||||
|
Petr Písař: Ported to 3.7.4 from 35080ce5535e233428a7e17320e111962daec7e1.
|
||||||
|
---
|
||||||
|
Pg.pm | 3 ++-
|
||||||
|
|
||||||
|
diff --git a/Pg.pm b/Pg.pm
|
||||||
|
index 9e0e9d7..13cd68f 100644
|
||||||
|
--- a/Pg.pm
|
||||||
|
+++ b/Pg.pm
|
||||||
|
@@ -530,7 +530,8 @@ use 5.008001;
|
||||||
|
$row->[$col_map{DATA_TYPE}] = DBD::Pg::db::pg_type_info($dbh,$row->[$col_map{DATA_TYPE}]);
|
||||||
|
|
||||||
|
# Add pg_constraint
|
||||||
|
- my $SQL = q{SELECT consrc FROM pg_catalog.pg_constraint WHERE contype = 'c' AND }.
|
||||||
|
+ my $SQL = q{SELECT pg_catalog.pg_get_constraintdef(oid) }.
|
||||||
|
+ q{FROM pg_catalog.pg_constraint WHERE contype = 'c' AND }.
|
||||||
|
qq{conrelid = $aid AND conkey = '{$attnum}'};
|
||||||
|
my $info = $dbh->selectall_arrayref($SQL);
|
||||||
|
if (@$info) {
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
Loading…
Reference in new issue