Compare commits
No commits in common. 'i8c-stream-3.7' and 'c9' have entirely different histories.
i8c-stream
...
c9
@ -1 +1 @@
|
||||
SOURCES/DBD-Pg-3.7.4.tar.gz
|
||||
SOURCES/DBD-Pg-3.14.2.tar.gz
|
||||
|
@ -1 +1 @@
|
||||
6f0598fef195203057bae7947859590e8b79e497 SOURCES/DBD-Pg-3.7.4.tar.gz
|
||||
fa4a3107df9fffa984383502b6bed3b129e0f6c2 SOURCES/DBD-Pg-3.14.2.tar.gz
|
||||
|
@ -1,72 +0,0 @@
|
||||
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
|
||||
|
@ -1,32 +0,0 @@
|
||||
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
|
||||
|
@ -1,50 +0,0 @@
|
||||
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
|
||||
|
@ -1,52 +0,0 @@
|
||||
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
|
||||
|
@ -1,30 +0,0 @@
|
||||
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
|
||||
|
@ -1,66 +0,0 @@
|
||||
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
|
||||
|
@ -1,37 +0,0 @@
|
||||
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
|
||||
|
@ -1,32 +0,0 @@
|
||||
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