]> git.joonet.de Git - adminer.git/commitdiff
Skip dump of generated columns
authorDenitz <197527+Denitz@users.noreply.github.com>
Sat, 23 Dec 2023 20:01:26 +0000 (23:01 +0300)
committerJakub Vrana <jakub@vrana.cz>
Wed, 19 Feb 2025 10:16:36 +0000 (11:16 +0100)
adminer/include/adminer.inc.php
changes.txt
todo.txt

index 632e29283e7c24aae28aec33bf94117584e72550..01f1677da11fcf384c7d4f2ad9ada44490edd12d 100644 (file)
@@ -831,6 +831,7 @@ class Adminer {
                                $insert = "";
                                $buffer = "";
                                $keys = array();
+                               $generated = array();
                                $suffix = "";
                                $fetch_function = ($table != '' ? 'fetch_assoc' : 'fetch_row');
                                while ($row = $result->$fetch_function()) {
@@ -838,6 +839,10 @@ class Adminer {
                                                $values = array();
                                                foreach ($row as $val) {
                                                        $field = $result->fetch_field();
+                                                       if ($fields[$field->name]['generated']) {
+                                                               $generated[$field->name] = true;
+                                                               continue;
+                                                       }
                                                        $keys[] = $field->name;
                                                        $key = idf_escape($field->name);
                                                        $values[] = "$key = VALUES($key)";
@@ -855,6 +860,10 @@ class Adminer {
                                                        $insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', $keys)) . ") VALUES";
                                                }
                                                foreach ($row as $key => $val) {
+                                                       if ($generated[$key]) {
+                                                               unset($row[$key]);
+                                                               continue;
+                                                       }
                                                        $field = $fields[$key];
                                                        $row[$key] = ($val !== null
                                                                ? unconvert_field($field, preg_match(number_type(), $field["type"]) && !preg_match('~\[~', $field["full_type"]) && is_numeric($val) ? $val : q(($val === false ? 0 : $val)))
index b6f0f222742fcad32d362aef4282ab33674c7660..b2b2cf29b83c26fa40a17e0f675da986e6d1a320 100644 (file)
@@ -2,6 +2,7 @@ Adminer 4.9.0-dev:
 Validate connection to server in HTTP based drivers
 Elasticsearch 5: Make unusable driver usable again, move it to plugins
 Add new Elasticsearch 7 driver
+MySQL: Skip dump of generated columns
 
 Adminer 4.8.2:
 Support multi-line table comments
index bf6b9986413eb2b164922898c8c1e7bd9a085a26..d7a0e5cc9657500b6f06db7ea0364f54e4705948 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -20,7 +20,6 @@ Joining tables - PRIMARY KEY (table, joining)
 Rank, Tree structure
 
 MySQL:
-Generated columns (MySQL >= 5.7.6)
 Data longer than max_allowed_packet can be sent by mysqli_stmt_send_long_data()
 
 MariaDB: