aboutsummaryrefslogtreecommitdiff
path: root/databases/pear-Horde_Db
diff options
context:
space:
mode:
authorMichael Reifenberger <mr@FreeBSD.org>2020-11-14 12:34:55 +0000
committerMichael Reifenberger <mr@FreeBSD.org>2020-11-14 12:34:55 +0000
commita54722d7f920827daf6ab6b07e6542d6a2990441 (patch)
tree0b9cc88efa663ed6f4d1b1e339fe306731065320 /databases/pear-Horde_Db
parent87972e3c42d6d31acd99e7eccdb5064265fc9255 (diff)
downloadports-a54722d7f920827daf6ab6b07e6542d6a2990441.tar.gz
ports-a54722d7f920827daf6ab6b07e6542d6a2990441.zip
Add upstream patch to Postgresql/Schema.php fixing the access for PostgreSQL >= 12
(extracted from the github repo of Horde-Db) Maintainer timeout: 2 weeks
Notes
Notes: svn path=/head/; revision=555110
Diffstat (limited to 'databases/pear-Horde_Db')
-rw-r--r--databases/pear-Horde_Db/Makefile2
-rw-r--r--databases/pear-Horde_Db/files/patch-lib_Horde_Db_Adapter_Postgresql_Schema.php67
2 files changed, 64 insertions, 5 deletions
diff --git a/databases/pear-Horde_Db/Makefile b/databases/pear-Horde_Db/Makefile
index 1283b01251d8..6924e5f6660b 100644
--- a/databases/pear-Horde_Db/Makefile
+++ b/databases/pear-Horde_Db/Makefile
@@ -2,7 +2,7 @@
PORTNAME= Horde_Db
PORTVERSION= 2.4.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= databases www pear
MAINTAINER= horde@FreeBSD.org
diff --git a/databases/pear-Horde_Db/files/patch-lib_Horde_Db_Adapter_Postgresql_Schema.php b/databases/pear-Horde_Db/files/patch-lib_Horde_Db_Adapter_Postgresql_Schema.php
index e813726126f6..5e503c401937 100644
--- a/databases/pear-Horde_Db/files/patch-lib_Horde_Db_Adapter_Postgresql_Schema.php
+++ b/databases/pear-Horde_Db/files/patch-lib_Horde_Db_Adapter_Postgresql_Schema.php
@@ -1,5 +1,5 @@
---- lib/Horde/Db/Adapter/Postgresql/Schema.php.orig 2017-02-27 10:00:17 UTC
-+++ lib/Horde/Db/Adapter/Postgresql/Schema.php
+--- lib/Horde/Db/Adapter/Postgresql/Schema.php.orig 2017-02-27 11:00:17.000000000 +0100
++++ lib/Horde/Db/Adapter/Postgresql/Schema.php 2020-10-28 00:40:32.469743000 +0100
@@ -3,12 +3,15 @@
* Copyright 2007 Maintainable Software, LLC
* Copyright 2008-2017 Horde LLC (http://www.horde.org/)
@@ -29,7 +29,27 @@
* @package Db
* @subpackage Adapter
*/
-@@ -1057,13 +1062,32 @@ class Horde_Db_Adapter_Postgresql_Schema extends Horde
+@@ -383,12 +388,13 @@ class Horde_Db_Adapter_Postgresql_Schema
+ {
+ /* @todo See if we can get this from information_schema instead */
+ return $this->selectAll('
+- SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
+- FROM pg_attribute a LEFT JOIN pg_attrdef d
+- ON a.attrelid = d.adrelid AND a.attnum = d.adnum
+- WHERE a.attrelid = ' . $this->quote($tableName) . '::regclass
+- AND a.attnum > 0 AND NOT a.attisdropped
+- ORDER BY a.attnum', $name);
++ SELECT a.attname, format_type(a.atttypid, a.atttypmod),
++ pg_get_expr(d.adbin, d.adrelid) AS adsrc, a.attnotnull
++ FROM pg_attribute a
++ LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
++ WHERE a.attrelid = ' . $this->quote($tableName) . '::regclass
++ AND a.attnum > 0 AND NOT a.attisdropped
++ ORDER BY a.attnum;', $name);
+ }
+
+ /**
+@@ -1057,13 +1063,32 @@ class Horde_Db_Adapter_Postgresql_Schema
$quotedSequence = $this->quoteSequenceName($sequence);
$quotedTable = $this->quoteTableName($table);
$quotedPk = $this->quoteColumnName($pk);
@@ -69,7 +89,46 @@
$this->selectValue($sql, 'Reset sequence');
} else {
if ($this->_logger) {
-@@ -1138,9 +1162,7 @@ class Horde_Db_Adapter_Postgresql_Schema extends Horde
+@@ -1103,28 +1128,20 @@ class Horde_Db_Adapter_Postgresql_Schema
+ $result = $this->selectOne($sql, 'PK and serial sequence');
+
+ if (!$result) {
+- // If that fails, try parsing the primary key's default value.
+- // Support the 7.x and 8.0 nextval('foo'::text) as well as
+- // the 8.1+ nextval('foo'::regclass).
+ $sql = "
+- SELECT attr.attname,
+- CASE
+- WHEN split_part(def.adsrc, '''', 2) ~ '.' THEN
+- substr(split_part(def.adsrc, '''', 2),
+- strpos(split_part(def.adsrc, '''', 2), '.')+1)
+- ELSE split_part(def.adsrc, '''', 2)
+- END AS relname
+- FROM pg_class t
+- JOIN pg_attribute attr ON (t.oid = attrelid)
+- JOIN pg_attrdef def ON (adrelid = attrelid AND adnum = attnum)
+- JOIN pg_constraint cons ON (conrelid = adrelid AND adnum = conkey[1])
+- WHERE t.oid = '$table'::regclass
+- AND cons.contype = 'p'
+- AND def.adsrc ~* 'nextval'";
+-
++ SELECT c.column_name, c.ordinal_position,
++ pg_get_serial_sequence(t.table_name, c.column_name) as relname
++ FROM information_schema.key_column_usage AS c
++ LEFT JOIN information_schema.table_constraints AS t
++ ON t.constraint_name = c.constraint_name
++ WHERE t.table_name = '$table' AND t.constraint_type = 'PRIMARY KEY';";
+ $result = $this->selectOne($sql, 'PK and custom sequence');
+ }
+
++ if (!$result) {
++ return array(null, null);
++ }
++
+ // [primary_key, sequence]
+ return array($result['attname'], $result['relname']);
+ }
+@@ -1138,9 +1155,7 @@ class Horde_Db_Adapter_Postgresql_Schema
{
if (!$this->_version) {
try {