From 6afbb5773771cc433be558fdd332ca58db919b24 Mon Sep 17 00:00:00 2001 From: Serge Rodovnichenko Date: Fri, 11 Oct 2024 14:16:08 +0300 Subject: [PATCH 1/3] Add support for db field comments --- wa-system/database/waDbMysqliAdapter.class.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wa-system/database/waDbMysqliAdapter.class.php b/wa-system/database/waDbMysqliAdapter.class.php index 8856d0128..646826c50 100644 --- a/wa-system/database/waDbMysqliAdapter.class.php +++ b/wa-system/database/waDbMysqliAdapter.class.php @@ -190,7 +190,7 @@ public function errorCode() */ public function schema($table, $keys = false) { - $res = $this->query("DESCRIBE ".$table); + $res = $this->query("SHOW FULL COLUMNS " . $table); if (!$res) { $this->exception(); } @@ -215,6 +215,10 @@ public function schema($table, $keys = false) $field['default'] = $row['Default']; } + if (!empty($row['Comment'])) { + $field['comment'] = $row['Comment']; + } + if ($row['Extra'] == 'auto_increment') { $field['autoincrement'] = 1; } @@ -435,6 +439,9 @@ protected function buildStatements($data) if (!empty($field['autoincrement'])) { $type .= ' AUTO_INCREMENT'; } + if (!empty($field['comment'])) { + $type .= " COMMENT '" . $this->escape($field['comment']) . "'"; + } $fields[$field_id] = $this->escapeField($field_id)." ".$type; } } From ff93c37b3a576cf34380dc24638cecb7f0c499ce Mon Sep 17 00:00:00 2001 From: Serge Rodovnichenko Date: Fri, 11 Oct 2024 14:29:54 +0300 Subject: [PATCH 2/3] Fix db statement --- wa-system/database/waDbMysqliAdapter.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wa-system/database/waDbMysqliAdapter.class.php b/wa-system/database/waDbMysqliAdapter.class.php index 646826c50..b4821e8e9 100644 --- a/wa-system/database/waDbMysqliAdapter.class.php +++ b/wa-system/database/waDbMysqliAdapter.class.php @@ -190,7 +190,7 @@ public function errorCode() */ public function schema($table, $keys = false) { - $res = $this->query("SHOW FULL COLUMNS " . $table); + $res = $this->query("SHOW FULL COLUMNS FROM " . $table); if (!$res) { $this->exception(); } From df29b22c11108436604b4c56328a42b27637033e Mon Sep 17 00:00:00 2001 From: Serge Rodovnichenko Date: Fri, 11 Oct 2024 14:40:09 +0300 Subject: [PATCH 3/3] Add try-catch with fallback to good old DESCRIBE --- wa-system/database/waDbMysqliAdapter.class.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wa-system/database/waDbMysqliAdapter.class.php b/wa-system/database/waDbMysqliAdapter.class.php index b4821e8e9..318ccb32f 100644 --- a/wa-system/database/waDbMysqliAdapter.class.php +++ b/wa-system/database/waDbMysqliAdapter.class.php @@ -190,7 +190,11 @@ public function errorCode() */ public function schema($table, $keys = false) { - $res = $this->query("SHOW FULL COLUMNS FROM " . $table); + try { + $res = $this->query("SHOW FULL COLUMNS FROM " . $table); + } catch (waDbException) { + $res = $this->query("DESCRIBE " . $table); + } if (!$res) { $this->exception(); }