From 5bebd9ca0cfb6f501a20d7b48f17d34dd2d0c9c7 Mon Sep 17 00:00:00 2001 From: "rishat.girfanov" Date: Tue, 20 Feb 2018 18:37:13 +0300 Subject: [PATCH] Add postgresql 10 compatibility to dbal Use this before 2.6 branch will be patched https://github.com/doctrine/dbal/pull/2893 --- .../DBAL/Schema/PostgreSqlSchemaManager.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php b/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php index 5b7b82e152b..e16a713864f 100644 --- a/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php +++ b/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php @@ -283,14 +283,19 @@ protected function getPortableNamespaceDefinition(array $namespace) */ protected function _getPortableSequenceDefinition($sequence) { - if ($sequence['schemaname'] != 'public') { - $sequenceName = $sequence['schemaname'] . "." . $sequence['relname']; + $version = (float)$this->_conn->getWrappedConnection()->getServerVersion(); + + if ($version >= 10) { + $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM pg_sequences WHERE schemaname = ' . $this->_conn->quote($sequence['schemaname']) . ' AND sequencename = ' . $this->_conn->quote($sequence['relname'])); } else { - $sequenceName = $sequence['relname']; + if ($sequence['schemaname'] !== 'public') { + $sequenceName = $sequence['schemaname'] . "." . $sequence['relname']; + } else { + $sequenceName = $sequence['relname']; + } + $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this->_platform->quoteIdentifier($sequenceName)); } - $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this->_platform->quoteIdentifier($sequenceName)); - return new Sequence($sequenceName, $data[0]['increment_by'], $data[0]['min_value']); }