summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2021-12-24 22:16:10 +0100
committerSergei Golubchik <serg@mariadb.org>2021-12-27 13:28:25 +0100
commit89a0364fc88efa7d91d02839a25fa22e4b276995 (patch)
tree0a578aa9a343e91a16c28b663a8d529b95c83081
parent55bb933a880bf048ebc4ce6c6e239dcc8268958d (diff)
downloadmariadb-git-89a0364fc88efa7d91d02839a25fa22e4b276995.tar.gz
MDEV-27304 SHOW ... result columns are right-aligned
--version=value was setting sys_var::CONFIG (meaning, the value came from the config file), but the filename was left as NULL.
-rw-r--r--mysql-test/suite/sys_vars/r/version.result16
-rw-r--r--mysql-test/suite/sys_vars/t/version.test1
-rw-r--r--sql/mysqld.cc3
-rw-r--r--sql/set_var.cc4
-rw-r--r--sql/set_var.h3
-rw-r--r--storage/perfschema/unittest/pfs_server_stubs.cc2
6 files changed, 25 insertions, 4 deletions
diff --git a/mysql-test/suite/sys_vars/r/version.result b/mysql-test/suite/sys_vars/r/version.result
index 29a2fb8c7e9..5dafd8e0d93 100644
--- a/mysql-test/suite/sys_vars/r/version.result
+++ b/mysql-test/suite/sys_vars/r/version.result
@@ -2,3 +2,19 @@ SELECT @@version;
@@version
my_favorite_version
1
+select * from information_schema.system_variables where variable_name='version';
+VARIABLE_NAME VERSION
+SESSION_VALUE NULL
+GLOBAL_VALUE my_favorite_version
+GLOBAL_VALUE_ORIGIN COMMAND-LINE
+DEFAULT_VALUE NULL
+VARIABLE_SCOPE GLOBAL
+VARIABLE_TYPE VARCHAR
+VARIABLE_COMMENT Server version number. It may also include a suffix with configuration or build information. -debug indicates debugging support was enabled on the server, and -log indicates at least one of the binary log, general log or slow query log are enabled, for example 10.1.1-MariaDB-mariadb1precise-log.
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST NULL
+READ_ONLY YES
+COMMAND_LINE_ARGUMENT NULL
+GLOBAL_VALUE_PATH NULL
diff --git a/mysql-test/suite/sys_vars/t/version.test b/mysql-test/suite/sys_vars/t/version.test
index daa95386fd4..35067a43406 100644
--- a/mysql-test/suite/sys_vars/t/version.test
+++ b/mysql-test/suite/sys_vars/t/version.test
@@ -4,3 +4,4 @@ perl;
grep /my_favorite_version/, `$ENV{MYSQL} -e status`;
print "$cnt\n";
EOF
+query_vertical select * from information_schema.system_variables where variable_name='version';
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 5775902c476..80aa87a5410 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -7967,7 +7967,8 @@ mysqld_get_one_option(const struct my_option *opt, const char *argument,
if (argument)
{
strmake(server_version, argument, sizeof(server_version) - 1);
- set_sys_var_value_origin(&server_version_ptr, sys_var::CONFIG);
+ set_sys_var_value_origin(&server_version_ptr,
+ *filename ? sys_var::CONFIG : sys_var::COMMAND_LINE, filename);
using_custom_server_version= true;
}
#ifndef EMBEDDED_LIBRARY
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 9744f0f6f39..861db2c1b8d 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -1278,7 +1278,8 @@ end:
and update it directly.
*/
-void set_sys_var_value_origin(void *ptr, enum sys_var::where here)
+void set_sys_var_value_origin(void *ptr, enum sys_var::where here,
+ const char *filename)
{
bool found __attribute__((unused))= false;
DBUG_ASSERT(!mysqld_server_started); // only to be used during startup
@@ -1289,6 +1290,7 @@ void set_sys_var_value_origin(void *ptr, enum sys_var::where here)
if (var->option.value == ptr)
{
found= true;
+ var->origin_filename= filename;
var->value_origin= here;
/* don't break early, search for all matches */
}
diff --git a/sql/set_var.h b/sql/set_var.h
index 2d538624825..611f16e8bbb 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -450,7 +450,8 @@ int sql_set_variables(THD *thd, List<set_var_base> *var_list, bool free);
} \
} while(0)
-void set_sys_var_value_origin(void *ptr, enum sys_var::where here);
+void set_sys_var_value_origin(void *ptr, enum sys_var::where here,
+ const char *filename= NULL);
enum sys_var::where get_sys_var_value_origin(void *ptr);
inline bool IS_SYSVAR_AUTOSIZE(void *ptr)
diff --git a/storage/perfschema/unittest/pfs_server_stubs.cc b/storage/perfschema/unittest/pfs_server_stubs.cc
index 5a855b2c147..ca7b2300797 100644
--- a/storage/perfschema/unittest/pfs_server_stubs.cc
+++ b/storage/perfschema/unittest/pfs_server_stubs.cc
@@ -51,7 +51,7 @@ void sql_print_warning(const char *format, ...)
}
class sys_var { public: enum where { AUTO }; };
-void set_sys_var_value_origin(void *ptr, enum sys_var::where here)
+void set_sys_var_value_origin(void *, enum sys_var::where, const char *)
{
}