diff options
author | Michael Reifenberger <mr@FreeBSD.org> | 2020-11-14 12:34:55 +0000 |
---|---|---|
committer | Michael Reifenberger <mr@FreeBSD.org> | 2020-11-14 12:34:55 +0000 |
commit | a54722d7f920827daf6ab6b07e6542d6a2990441 (patch) | |
tree | 0b9cc88efa663ed6f4d1b1e339fe306731065320 /databases/pear-Horde_Db | |
parent | 87972e3c42d6d31acd99e7eccdb5064265fc9255 (diff) | |
download | ports-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/Makefile | 2 | ||||
-rw-r--r-- | databases/pear-Horde_Db/files/patch-lib_Horde_Db_Adapter_Postgresql_Schema.php | 67 |
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 { |