]> git.joonet.de Git - adminer.git/commitdiff
PostgreSQL: Fix exporting CREATE TABLE with sequence default value
authorkhoazero123 <khoazero123@gmail.com>
Fri, 22 Oct 2021 04:34:22 +0000 (11:34 +0700)
committerJakub Vrana <jakub@vrana.cz>
Wed, 19 Feb 2025 10:16:38 +0000 (11:16 +0100)
adminer/drivers/pgsql.inc.php
changes.txt

index 427c3df12a3bc6a97772ecdd34af41e74f46a508..f41ea04baf0099d59a3858e01429ae6f75d2a609 100644 (file)
@@ -36,7 +36,7 @@ if (isset($_GET["pgsql"])) {
                        }
 
                        function quote($string) {
-                               return "'" . pg_escape_string($this->_link, $string) . "'";
+                               return pg_escape_literal($this->_link, $string);
                        }
 
                        function value($val, $field) {
@@ -775,7 +775,7 @@ AND typelem = 0"
                $return = "CREATE TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " (\n    ";
 
                // fields' definitions
-               foreach ($fields as $field_name => $field) {
+               foreach ($fields as $field) {
                        $part = idf_escape($field['field']) . ' ' . $field['full_type']
                                . default_value($field)
                                . ($field['attnotnull'] ? " NOT NULL" : "");
@@ -785,7 +785,7 @@ AND typelem = 0"
                        if (preg_match('~nextval\(\'([^\']+)\'\)~', $field['default'], $matches)) {
                                $sequence_name = $matches[1];
                                $sq = reset(get_rows(min_version(10)
-                                       ? "SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = " . q($sequence_name)
+                                       ? "SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = " . q(idf_unescape($sequence_name))
                                        : "SELECT * FROM $sequence_name"
                                ));
                                $sequences[] = ($style == "DROP+CREATE" ? "DROP SEQUENCE IF EXISTS $sequence_name;\n" : "")
index e9ceaefb8650b6bf7d477e00bee03261ff2f9056..b0ebb6b4e0f7391de8c0b38a518af4cb47f872ae 100644 (file)
@@ -1,3 +1,7 @@
+Adminer 4.9.2-dev:
+PostgreSQL: Fix exporting CREATE TABLE query with GENERATED default values
+PostgreSQL: Fix exporting CREATE TABLE with sequence default value
+
 Adminer 4.9.1:
 Support PHP 8.3
 PostgreSQL: Show only accessible databases