From: Alexandre Alapetite Date: Sun, 7 May 2017 08:53:38 +0000 (+0200) Subject: Fix GROUP BY in dbstructure X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=f8384305352412a7d815e3247b668c0186521e2c;p=friendica.git Fix GROUP BY in dbstructure https://github.com/friendica/friendica/issues/3440 --- diff --git a/boot.php b/boot.php index dfb1073b1c..45029fecd2 100644 --- a/boot.php +++ b/boot.php @@ -38,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_CODENAME', 'Asparagus'); define ( 'FRIENDICA_VERSION', '3.5.2-dev' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1223 ); +define ( 'DB_UPDATE_VERSION', 1224 ); /** * @brief Constant with a HTML line break. diff --git a/include/dbstructure.php b/include/dbstructure.php index 8c29eb6415..7fcec33a68 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -398,6 +398,12 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { $sql3 .= ";"; } + $field_list = ''; + foreach ($structure['fields'] AS $fieldname => $parameters) { + $field_list .= 'ANY_VALUE(`' . $fieldname . '`),'; + } + $field_list = rtrim($field_list, ','); + if ($verbose) { // Ensure index conversion to unique removes duplicates if ($is_unique) { @@ -414,7 +420,7 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { if ($ignore != "") { echo "SET session old_alter_table=0;\n"; } else { - echo "INSERT INTO `".$temp_name."` SELECT * FROM `".$name."`".$group_by.";\n"; + echo "INSERT INTO `".$temp_name."` SELECT ".$field_list." FROM `".$name."`".$group_by.";\n"; echo "DROP TABLE `".$name."`;\n"; echo "RENAME TABLE `".$temp_name."` TO `".$name."`;\n"; } @@ -445,7 +451,7 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { if ($ignore != "") { $db->q("SET session old_alter_table=0;"); } else { - $r = $db->q("INSERT INTO `".$temp_name."` SELECT * FROM `".$name."`".$group_by.";"); + $r = $db->q("INSERT INTO `".$temp_name."` SELECT ".$field_list." FROM `".$name."`".$group_by.";"); if (!dbm::is_result($r)) { $errors .= print_update_error($db, $sql3); return $errors; diff --git a/update.php b/update.php index 31a3068ea5..e3b1c31b33 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@