From 15ac6c58677c833b6d4fd6a6b700dea8faf70f7f Mon Sep 17 00:00:00 2001 From: danielnachun Date: Mon, 16 Aug 2021 17:15:37 -0700 Subject: [PATCH 01/12] CMakeLists.txt: remove MYSQL_SOURCE_DIR from MYSQL_INCLUDE_DIRS --- storage/mroonga/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/storage/mroonga/CMakeLists.txt b/storage/mroonga/CMakeLists.txt index 6671b3a8d5649..14250c99f84d0 100644 --- a/storage/mroonga/CMakeLists.txt +++ b/storage/mroonga/CMakeLists.txt @@ -219,8 +219,7 @@ set(MYSQL_INCLUDE_DIRS "${MYSQL_REGEX_INCLUDE_DIR}" "${MYSQL_RAPIDJSON_INCLUDE_DIR}" "${MYSQL_LIBBINLOGEVENTS_EXPORT_DIR}" - "${MYSQL_LIBBINLOGEVENTS_INCLUDE_DIR}" - "${MYSQL_SOURCE_DIR}") + "${MYSQL_LIBBINLOGEVENTS_INCLUDE_DIR}") if(MRN_BUNDLED) set(MYSQL_PLUGIN_DIR "${INSTALL_PLUGINDIR}") From c9d57c006a3e9dc5dfd148d8a3b4c4663b5269ab Mon Sep 17 00:00:00 2001 From: Alexey Bychko Date: Thu, 19 Aug 2021 19:47:38 +0700 Subject: [PATCH 02/12] MDEV-26380 auth_pam_tool has incorrect permissions on CentOS 7 splitted permission setting to the 2 separate calls. according to execute_process() doc, output from first command will be piped to second which led to race and randomly lost suid bit from auth_pam_tool. --- plugin/auth_pam/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugin/auth_pam/CMakeLists.txt b/plugin/auth_pam/CMakeLists.txt index 8d11d174f904e..92e7b676e57e7 100644 --- a/plugin/auth_pam/CMakeLists.txt +++ b/plugin/auth_pam/CMakeLists.txt @@ -40,6 +40,9 @@ IF(HAVE_PAM_APPL_H AND HAVE_GETGROUPLIST) TARGET_LINK_LIBRARIES(auth_pam_tool pam) INSTALL(CODE "EXECUTE_PROCESS( COMMAND chmod u=rwx,g=,o= auth_pam_tool_dir + WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR}/)" + COMPONENT Server) + INSTALL(CODE "EXECUTE_PROCESS( COMMAND chmod u=rwxs,g=rx,o=rx auth_pam_tool_dir/auth_pam_tool WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR}/)" COMPONENT Server) From 4009e9b25333fb1819f2696760946679f7e20674 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 19 Aug 2021 17:49:39 +0200 Subject: [PATCH 03/12] MDEV-19313 post-fix If --thread-pool-dedicated-listener is set, worker should not pick up events. Dedicated listener constantly drains all events, thus polling also from another thread makes no sense. --- sql/threadpool_generic.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/threadpool_generic.cc b/sql/threadpool_generic.cc index b34104dbd0855..ed3ba12ee25ce 100644 --- a/sql/threadpool_generic.cc +++ b/sql/threadpool_generic.cc @@ -1214,7 +1214,7 @@ TP_connection_generic *get_event(worker_thread_t *current_thread, non-blocking event poll, i.e with timeout = 0. If this returns events, pick one */ - if (!oversubscribed) + if (!oversubscribed && !threadpool_dedicated_listener) { native_event ev[MAX_EVENTS]; int cnt = io_poll_wait(thread_group->pollfd, ev, MAX_EVENTS, 0); From 69b75cb3dba9dfacf17f93dfddb66d1bfb4fec99 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 19 Aug 2021 17:54:13 +0200 Subject: [PATCH 04/12] MDEV-26440 Missing connection id value in I_S.thread_pool_queues It turns out, Field::set_notnull is required for a nullable I_S field. Rework thread_pool_info.test to test request queueing in threadpool. --- mysql-test/main/thread_pool_info.opt | 2 +- mysql-test/main/thread_pool_info.result | 42 +++++++++++++----- mysql-test/main/thread_pool_info.test | 59 +++++++++++++++++++++++-- sql/thread_pool_info.cc | 3 ++ 4 files changed, 91 insertions(+), 15 deletions(-) diff --git a/mysql-test/main/thread_pool_info.opt b/mysql-test/main/thread_pool_info.opt index 4094287a9bfce..61bfc80d237ba 100644 --- a/mysql-test/main/thread_pool_info.opt +++ b/mysql-test/main/thread_pool_info.opt @@ -1 +1 @@ ---thread-handling=pool-of-threads --loose-thread-pool-mode=generic --loose-thread-pool-groups=ON --loose-thread-pool-queues=ON --thread-pool-stats=ON --thread-pool-waits=ON \ No newline at end of file +--thread-handling=pool-of-threads --loose-thread-pool-mode=generic --loose-thread-pool-groups=ON --loose-thread-pool-queues=ON --thread-pool-stats=ON --thread-pool-waits=ON --thread-pool-size=1 --thread-pool-max-threads=2 --thread-pool-dedicated-listener diff --git a/mysql-test/main/thread_pool_info.result b/mysql-test/main/thread_pool_info.result index 27717aa298a74..53fa1d1255dbb 100644 --- a/mysql-test/main/thread_pool_info.result +++ b/mysql-test/main/thread_pool_info.result @@ -26,13 +26,6 @@ SUM(QUEUE_LENGTH) SELECT SUM(IS_STALLED) FROM INFORMATION_SCHEMA.THREAD_POOL_GROUPS; SUM(IS_STALLED) 0 -DESC INFORMATION_SCHEMA.THREAD_POOL_QUEUES; -Field Type Null Key Default Extra -GROUP_ID int(6) NO 0 -POSITION int(6) NO 0 -PRIORITY int(1) NO 0 -CONNECTION_ID bigint(19) unsigned YES NULL -QUEUEING_TIME_MICROSECONDS bigint(19) NO 0 DESC INFORMATION_SCHEMA.THREAD_POOL_STATS; Field Type Null Key Default Extra GROUP_ID int(6) NO 0 @@ -56,9 +49,12 @@ FLUSH THREAD_POOL_STATS; SELECT SUM(DEQUEUES_BY_LISTENER+DEQUEUES_BY_WORKER) FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; SUM(DEQUEUES_BY_LISTENER+DEQUEUES_BY_WORKER) 1 -SELECT SUM(POLLS_BY_LISTENER+POLLS_BY_WORKER) BETWEEN 2 AND 3 FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; -SUM(POLLS_BY_LISTENER+POLLS_BY_WORKER) BETWEEN 2 AND 3 -1 +SELECT SUM(POLLS_BY_LISTENER) FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; +SUM(POLLS_BY_LISTENER) +2 +SELECT SUM(POLLS_BY_WORKER) FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; +SUM(POLLS_BY_WORKER) +0 DESC INFORMATION_SCHEMA.THREAD_POOL_WAITS; Field Type Null Key Default Extra REASON varchar(16) NO @@ -87,3 +83,29 @@ SELECT COUNT FROM INFORMATION_SCHEMA.THREAD_POOL_WAITS WHERE REASON='Sleep'; COUNT 1 FLUSH THREAD_POOL_WAITS; +DESC INFORMATION_SCHEMA.THREAD_POOL_QUEUES; +Field Type Null Key Default Extra +GROUP_ID int(6) NO 0 +POSITION int(6) NO 0 +PRIORITY int(1) NO 0 +CONNECTION_ID bigint(19) unsigned YES NULL +QUEUEING_TIME_MICROSECONDS bigint(19) NO 0 +# restart: with restart_parameters +connect con1, localhost, root,,test; +connection con1; +connect con2, localhost, root,,test; +connection con2; +connect extra_con,127.0.0.1,root,,test,$extra_port,; +connection con1; +SELECT SLEEP(1000); +connection extra_con; +connection con2; +DO 1; +connection extra_con; +KILL QUERY con1_id; +disconnect extra_con; +connection con1; +disconnect con1; +connection con2; +disconnect con2; +connection default; diff --git a/mysql-test/main/thread_pool_info.test b/mysql-test/main/thread_pool_info.test index 914720af862b8..cd906454d8c88 100644 --- a/mysql-test/main/thread_pool_info.test +++ b/mysql-test/main/thread_pool_info.test @@ -15,9 +15,6 @@ SELECT SUM(ACTIVE_THREADS) > 0 FROM INFORMATION_SCHEMA.THREAD_POOL_GROUPS; SELECT SUM(QUEUE_LENGTH) FROM INFORMATION_SCHEMA.THREAD_POOL_GROUPS; SELECT SUM(IS_STALLED) FROM INFORMATION_SCHEMA.THREAD_POOL_GROUPS; -# I_S.THREAD_POOL_QUEUES -DESC INFORMATION_SCHEMA.THREAD_POOL_QUEUES; -#Todo - figure out how to populate queue with debug test # I_S.THREAD_POOL_STATS DESC INFORMATION_SCHEMA.THREAD_POOL_STATS; @@ -29,7 +26,8 @@ SELECT SUM(POLLS_BY_LISTENER+POLLS_BY_WORKER) > 0 FROM INFORMATION_SCHEMA.THREAD --disable_ps_protocol FLUSH THREAD_POOL_STATS; SELECT SUM(DEQUEUES_BY_LISTENER+DEQUEUES_BY_WORKER) FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; -SELECT SUM(POLLS_BY_LISTENER+POLLS_BY_WORKER) BETWEEN 2 AND 3 FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; +SELECT SUM(POLLS_BY_LISTENER) FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; +SELECT SUM(POLLS_BY_WORKER) FROM INFORMATION_SCHEMA.THREAD_POOL_STATS; --enable_ps_protocol #I_S.THREAD_POOL_WAITS @@ -39,3 +37,56 @@ SELECT COUNT FROM INFORMATION_SCHEMA.THREAD_POOL_WAITS WHERE REASON='Sleep'; SELECT SLEEP(0.01); SELECT COUNT FROM INFORMATION_SCHEMA.THREAD_POOL_WAITS WHERE REASON='Sleep'; FLUSH THREAD_POOL_WAITS; + + +# I_S.THREAD_POOL_QUEUES +DESC INFORMATION_SCHEMA.THREAD_POOL_QUEUES; +let $extra_port=`select @@port+1`; + +let $restart_parameters=--extra-port=$extra_port; +let $restart_noprint=1; +source include/restart_mysqld.inc; + +connect (con1, localhost, root,,test); +connection con1; +let $con1_id=`SELECT CONNECTION_ID()`; + +connect (con2, localhost, root,,test); +connection con2; +let $con2_id=`SELECT CONNECTION_ID()`; + +connect(extra_con,127.0.0.1,root,,test,$extra_port,); + +connection con1; +send SELECT SLEEP(1000); + +connection extra_con; +let $wait_condition= + SELECT COUNT(*) > 0 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE STATE='User sleep' AND ID=$con1_id; +--source include/wait_condition.inc + +connection con2; +send DO 1; + + +connection extra_con; +let $wait_condition= + SELECT COUNT(*) > 0 FROM INFORMATION_SCHEMA.THREAD_POOL_QUEUES + WHERE CONNECTION_ID IS NOT NULL; +--source include/wait_condition.inc + +--replace_result $con1_id con1_id +eval KILL QUERY $con1_id; +disconnect extra_con; + +connection con1; +error 0,ER_QUERY_INTERRUPTED; +reap; +disconnect con1; + +connection con2; +reap; +disconnect con2; + +connection default; diff --git a/sql/thread_pool_info.cc b/sql/thread_pool_info.cc index f003581a5b00e..90ac687178484 100644 --- a/sql/thread_pool_info.cc +++ b/sql/thread_pool_info.cc @@ -131,7 +131,10 @@ static int queues_fill_table(THD* thd, TABLE_LIST* tables, COND*) table->field[2]->store(prio, true); /* CONNECTION_ID */ if (c->thd) + { + table->field[3]->set_notnull(); table->field[3]->store(c->thd->thread_id, true); + } /* QUEUEING_TIME */ table->field[4]->store(now - c->enqueue_time, true); From 1002703baa13647b5f43509fccbb79c17ed5c0c7 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 20 Aug 2021 00:25:43 +0200 Subject: [PATCH 05/12] MDEV-19712 backup stages commented out. Remove commented out code, so that occasional reader is not confused. --- extra/mariabackup/backup_mysql.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/extra/mariabackup/backup_mysql.cc b/extra/mariabackup/backup_mysql.cc index 04a4fb22e144d..1c8305580c7ae 100644 --- a/extra/mariabackup/backup_mysql.cc +++ b/extra/mariabackup/backup_mysql.cc @@ -934,8 +934,6 @@ bool lock_tables(MYSQL *connection) } xb_mysql_query(connection, "BACKUP STAGE START", true); - // xb_mysql_query(connection, "BACKUP STAGE FLUSH", true); - // xb_mysql_query(connection, "BACKUP STAGE BLOCK_DDL", true); xb_mysql_query(connection, "BACKUP STAGE BLOCK_COMMIT", true); /* Set the maximum supported session value for lock_wait_timeout to prevent unnecessary timeouts when the From a6621867e93d310742692bce4d332309999076f8 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Fri, 20 Aug 2021 10:36:38 +1000 Subject: [PATCH 06/12] deb: columnstore not 32bit (fix stretch) This corrects the autobake on Stretch Caused by commit 0268b8712288d46fbd8a43fdef6bada399b68dff and commit 3d16e0e16c649505f06b39b7f7e800494ba0fef9. For very strange reasons (still a mistery) the above commits caused the federatedx, archive and blackhole plugins to be missing in the install location even though they where built in the build log. This only occured on Stretch and not recent Ubuntu and Debian distros. The stretch autobake output contained: dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_archive.so" (tried in "." and "debian/tmp") dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_archive.so dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_blackhole.so" (tried in "." and "debian/tmp") dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_blackhole.so dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_federatedx.so" (tried in "." and "debian/tmp") dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_federatedx.sodh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_archive.so" (tried in "." and "debian/tmp") dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_archive.so dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_blackhole.so" (tried in "." and "debian/tmp") dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_blackhole.so dh_install: Cannot find (any matches for) "usr/lib/mysql/plugin/ha_federatedx.so" (tried in "." and "debian/tmp") dh_install: mariadb-server-10.5 missing files: usr/lib/mysql/plugin/ha_federatedx.so --- debian/autobake-deb.sh | 9 ++++++--- debian/rules | 9 --------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/debian/autobake-deb.sh b/debian/autobake-deb.sh index 1363f96dc5a77..c09ebb1d0cdee 100755 --- a/debian/autobake-deb.sh +++ b/debian/autobake-deb.sh @@ -24,10 +24,13 @@ then # build less verbose # MCOL-4149: ColumnStore builds are so slow and big that they must be skipped on # both Travis-CI and Gitlab-CI - sed -e '/Add support for verbose builds/,/^$/d' \ - -e '/ColumnStore is part of the build/,/^$/d' \ - -e 's|$(CMAKEFLAGS)|$(CMAKEFLAGS) -DPLUGIN_COLUMNSTORE=NO|' \ + sed -e 's|$(CMAKEFLAGS)|$(CMAKEFLAGS) -DPLUGIN_COLUMNSTORE=NO|' \ -i debian/rules +elif [ -d storage/columnstore/columnstore/debian ] +then + cp -v storage/columnstore/columnstore/debian/mariadb-plugin-columnstore.* debian/ + echo >> debian/control + cat storage/columnstore/columnstore/debian/control >> debian/control fi # Don't build or try to put files in a package for selected plugins and components on Travis-CI diff --git a/debian/rules b/debian/rules index 13e5c5e57a7fc..650f807e0ec0a 100755 --- a/debian/rules +++ b/debian/rules @@ -70,15 +70,6 @@ ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) dh_auto_build --builddirectory=builddir-native -- import_executables endif - # ColumnStore is part of the build -ifneq (32,$(DEB_HOST_ARCH_BITS)) - # Take the files and part of control from MCS directory - cp -v storage/columnstore/columnstore/debian/mariadb-plugin-columnstore.* debian/ - # Don't include twice - grep -q '^Package: mariadb-plugin-columnstore$$' debian/control || \ - ( echo && cat storage/columnstore/columnstore/debian/control ) >> debian/control -endif - echo "server:Version=$(DEB_VERSION)" >> debian/substvars # RocksDB and Column Store cannot build on 32-bit platforms From 0b2241aebcc786923e7093dd4edb2c03bf74aca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 20 Aug 2021 11:14:36 +0300 Subject: [PATCH 07/12] MDEV-26443 HAVE_C99_INITIALIZERS is not applicable to C++ Designated initializers were introduced in ISO/IEC 9899:1999 (C99), but the C code base of MariaDB is supposed to be compatible with the 1990 version of the standard. The InnoDB code based was switched from C to C++ in MySQL 5.6 and MariaDB 10.0. C++ did not introduce syntax for designated initializers until ISO/IEC 14882:2020. Our C++ code base is still stuck with the 2011 or earlier version of that standard. Therefore, this check as well as the macro STRUCT_FLD are best removed. --- storage/innobase/handler/i_s.cc | 3574 +++++++++---------------------- storage/innobase/handler/i_s.h | 19 +- storage/innobase/innodb.cmake | 5 - 3 files changed, 1017 insertions(+), 2581 deletions(-) diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index 531a2936f0bd6..03c0efff0278f 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -302,218 +302,103 @@ field_store_ulint( #endif /* Fields of the dynamic table INFORMATION_SCHEMA.innodb_trx */ -static ST_FIELD_INFO innodb_trx_fields_info[] = +static ST_FIELD_INFO innodb_trx_fields_info[]= { #define IDX_TRX_ID 0 - {STRUCT_FLD(field_name, "trx_id"), - STRUCT_FLD(field_length, TRX_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_id", TRX_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_STATE 1 - {STRUCT_FLD(field_name, "trx_state"), - STRUCT_FLD(field_length, TRX_QUE_STATE_STR_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_state", TRX_QUE_STATE_STR_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_STARTED 2 - {STRUCT_FLD(field_name, "trx_started"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_started", 0, MYSQL_TYPE_DATETIME, 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_REQUESTED_LOCK_ID 3 - {STRUCT_FLD(field_name, "trx_requested_lock_id"), - STRUCT_FLD(field_length, TRX_I_S_LOCK_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_requested_lock_id", TRX_I_S_LOCK_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_TRX_WAIT_STARTED 4 - {STRUCT_FLD(field_name, "trx_wait_started"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_wait_started", 0, MYSQL_TYPE_DATETIME, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_TRX_WEIGHT 5 - {STRUCT_FLD(field_name, "trx_weight"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_weight",MY_INT64_NUM_DECIMAL_DIGITS,MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_MYSQL_THREAD_ID 6 - {STRUCT_FLD(field_name, "trx_mysql_thread_id"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_mysql_thread_id",MY_INT64_NUM_DECIMAL_DIGITS,MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_QUERY 7 - {STRUCT_FLD(field_name, "trx_query"), - STRUCT_FLD(field_length, TRX_I_S_TRX_QUERY_MAX_LEN), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_query", TRX_I_S_TRX_QUERY_MAX_LEN, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_TRX_OPERATION_STATE 8 - {STRUCT_FLD(field_name, "trx_operation_state"), - STRUCT_FLD(field_length, TRX_I_S_TRX_OP_STATE_MAX_LEN), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_operation_state", TRX_I_S_TRX_OP_STATE_MAX_LEN, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_TRX_TABLES_IN_USE 9 - {STRUCT_FLD(field_name, "trx_tables_in_use"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_tables_in_use", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_TABLES_LOCKED 10 - {STRUCT_FLD(field_name, "trx_tables_locked"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_tables_locked", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_LOCK_STRUCTS 11 - {STRUCT_FLD(field_name, "trx_lock_structs"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_lock_structs", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_LOCK_MEMORY_BYTES 12 - {STRUCT_FLD(field_name, "trx_lock_memory_bytes"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_lock_memory_bytes", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_ROWS_LOCKED 13 - {STRUCT_FLD(field_name, "trx_rows_locked"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_rows_locked", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_ROWS_MODIFIED 14 - {STRUCT_FLD(field_name, "trx_rows_modified"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_rows_modified", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_CONNCURRENCY_TICKETS 15 - {STRUCT_FLD(field_name, "trx_concurrency_tickets"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_concurrency_tickets", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_TRX_ISOLATION_LEVEL 16 - {STRUCT_FLD(field_name, "trx_isolation_level"), - STRUCT_FLD(field_length, TRX_I_S_TRX_ISOLATION_LEVEL_MAX_LEN), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_isolation_level", TRX_I_S_TRX_ISOLATION_LEVEL_MAX_LEN, + MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_UNIQUE_CHECKS 17 - {STRUCT_FLD(field_name, "trx_unique_checks"), - STRUCT_FLD(field_length, 1), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 1), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_unique_checks", 1, MYSQL_TYPE_LONG, + 1, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_FOREIGN_KEY_CHECKS 18 - {STRUCT_FLD(field_name, "trx_foreign_key_checks"), - STRUCT_FLD(field_length, 1), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 1), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_foreign_key_checks", 1, MYSQL_TYPE_LONG, + 1, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_LAST_FOREIGN_KEY_ERROR 19 - {STRUCT_FLD(field_name, "trx_last_foreign_key_error"), - STRUCT_FLD(field_length, TRX_I_S_TRX_FK_ERROR_MAX_LEN), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_last_foreign_key_error", TRX_I_S_TRX_FK_ERROR_MAX_LEN, + MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #ifdef BTR_CUR_HASH_ADAPT #define IDX_TRX_ADAPTIVE_HASH_LATCHED 20 - {STRUCT_FLD(field_name, "trx_adaptive_hash_latched"), - STRUCT_FLD(field_length, 1), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_adaptive_hash_latched", 1, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #endif /* BTR_CUR_HASH_ADAPT */ #define IDX_TRX_READ_ONLY 20 + I_S_AHI - {STRUCT_FLD(field_name, "trx_is_read_only"), - STRUCT_FLD(field_length, 1), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"trx_is_read_only", 1, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_TRX_AUTOCOMMIT_NON_LOCKING 21 + I_S_AHI - {STRUCT_FLD(field_name, "trx_autocommit_non_locking"), - STRUCT_FLD(field_length, 1), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"trx_autocommit_non_locking", 1, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -701,146 +586,97 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_trx = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_TRX"), + "INNODB_TRX", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB transactions"), + "InnoDB transactions", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_trx_init), + innodb_trx_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.innodb_locks */ -static ST_FIELD_INFO innodb_locks_fields_info[] = +static ST_FIELD_INFO innodb_locks_fields_info[]= { #define IDX_LOCK_ID 0 - {STRUCT_FLD(field_name, "lock_id"), - STRUCT_FLD(field_length, TRX_I_S_LOCK_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_id", TRX_I_S_LOCK_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_TRX_ID 1 - {STRUCT_FLD(field_name, "lock_trx_id"), - STRUCT_FLD(field_length, TRX_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_trx_id", TRX_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_MODE 2 - {STRUCT_FLD(field_name, "lock_mode"), - /* S[,GAP] X[,GAP] IS[,GAP] IX[,GAP] AUTO_INC UNKNOWN */ - STRUCT_FLD(field_length, 32), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_mode", + /* S[,GAP] X[,GAP] IS[,GAP] IX[,GAP] AUTO_INC UNKNOWN */ + 32, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_TYPE 3 - {STRUCT_FLD(field_name, "lock_type"), - STRUCT_FLD(field_length, 32 /* RECORD|TABLE|UNKNOWN */), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_type", 32 /* RECORD|TABLE|UNKNOWN */, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_TABLE 4 - {STRUCT_FLD(field_name, "lock_table"), - STRUCT_FLD(field_length, 1024), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_table", 1024, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_INDEX 5 - {STRUCT_FLD(field_name, "lock_index"), - STRUCT_FLD(field_length, 1024), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_index", 1024, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_SPACE 6 - {STRUCT_FLD(field_name, "lock_space"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_space", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_PAGE 7 - {STRUCT_FLD(field_name, "lock_page"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_page", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_REC 8 - {STRUCT_FLD(field_name, "lock_rec"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"lock_rec", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_LOCK_DATA 9 - {STRUCT_FLD(field_name, "lock_data"), - STRUCT_FLD(field_length, TRX_I_S_LOCK_DATA_MAX_LEN), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"lock_data", TRX_I_S_LOCK_DATA_MAX_LEN, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -956,91 +792,71 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_locks = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_LOCKS"), + "INNODB_LOCKS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB conflicting locks"), + "InnoDB conflicting locks", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_locks_init), + innodb_locks_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.innodb_lock_waits */ -static ST_FIELD_INFO innodb_lock_waits_fields_info[] = +static ST_FIELD_INFO innodb_lock_waits_fields_info[]= { #define IDX_REQUESTING_TRX_ID 0 - {STRUCT_FLD(field_name, "requesting_trx_id"), - STRUCT_FLD(field_length, TRX_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"requesting_trx_id", TRX_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_REQUESTED_LOCK_ID 1 - {STRUCT_FLD(field_name, "requested_lock_id"), - STRUCT_FLD(field_length, TRX_I_S_LOCK_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"requested_lock_id", TRX_I_S_LOCK_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BLOCKING_TRX_ID 2 - {STRUCT_FLD(field_name, "blocking_trx_id"), - STRUCT_FLD(field_length, TRX_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"blocking_trx_id", TRX_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BLOCKING_LOCK_ID 3 - {STRUCT_FLD(field_name, "blocking_lock_id"), - STRUCT_FLD(field_length, TRX_I_S_LOCK_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"blocking_lock_id", TRX_I_S_LOCK_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -1139,49 +955,49 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_lock_waits = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_LOCK_WAITS"), + "INNODB_LOCK_WAITS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB which lock is blocking which"), + "InnoDB which lock is blocking which", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_lock_waits_init), + innodb_lock_waits_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /*******************************************************************//** @@ -1284,60 +1100,21 @@ trx_i_s_common_fill_table( } /* Fields of the dynamic table information_schema.innodb_cmp. */ -static ST_FIELD_INFO i_s_cmp_fields_info[] = -{ - {STRUCT_FLD(field_name, "page_size"), - STRUCT_FLD(field_length, 5), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Compressed Page Size"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "compress_ops"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Number of Compressions"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "compress_ops_ok"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Number of" - " Successful Compressions"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "compress_time"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Duration of Compressions," - " in Seconds"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "uncompress_ops"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Number of Decompressions"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "uncompress_time"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Duration of Decompressions," - " in Seconds"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO +static ST_FIELD_INFO i_s_cmp_fields_info[]= +{ + {"page_size", 5, MYSQL_TYPE_LONG, + 0, 0, "Compressed Page Size", SKIP_OPEN_TABLE}, + {"compress_ops", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Total Number of Compressions", SKIP_OPEN_TABLE}, + {"compress_ops_ok", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Total Number of Successful Compressions", SKIP_OPEN_TABLE}, + {"compress_time", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Total Duration of Compressions, in Seconds", SKIP_OPEN_TABLE}, + {"uncompress_ops", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Total Number of Decompressions", SKIP_OPEN_TABLE}, + {"uncompress_time", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Total Duration of Decompressions, in Seconds", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; @@ -1467,179 +1244,139 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_CMP"), + "INNODB_CMP", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Statistics for the InnoDB compression"), + "Statistics for the InnoDB compression", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_cmp_init), + i_s_cmp_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp_reset = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_CMP_RESET"), + "INNODB_CMP_RESET", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Statistics for the InnoDB compression;" - " reset cumulated counts"), + "Statistics for the InnoDB compression;" + " reset cumulated counts", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_cmp_reset_init), + i_s_cmp_reset_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic tables information_schema.innodb_cmp_per_index and information_schema.innodb_cmp_per_index_reset. */ -static ST_FIELD_INFO i_s_cmp_per_index_fields_info[] = +static ST_FIELD_INFO i_s_cmp_per_index_fields_info[]= { #define IDX_DATABASE_NAME 0 - {STRUCT_FLD(field_name, "database_name"), - STRUCT_FLD(field_length, 192), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"database_name", 192, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_TABLE_NAME 1 - {STRUCT_FLD(field_name, "table_name"), - STRUCT_FLD(field_length, 192), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"table_name", 192, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_INDEX_NAME 2 - {STRUCT_FLD(field_name, "index_name"), - STRUCT_FLD(field_length, 192), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"index_name", 192, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_COMPRESS_OPS 3 - {STRUCT_FLD(field_name, "compress_ops"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"compress_ops", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_COMPRESS_OPS_OK 4 - {STRUCT_FLD(field_name, "compress_ops_ok"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"compress_ops_ok", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_COMPRESS_TIME 5 - {STRUCT_FLD(field_name, "compress_time"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"compress_time", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_UNCOMPRESS_OPS 6 - {STRUCT_FLD(field_name, "uncompress_ops"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"uncompress_ops", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_UNCOMPRESS_TIME 7 - {STRUCT_FLD(field_name, "uncompress_time"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"uncompress_time", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -1817,154 +1554,117 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp_per_index = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_CMP_PER_INDEX"), + "INNODB_CMP_PER_INDEX", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Statistics for the InnoDB compression (per index)"), + "Statistics for the InnoDB compression (per index)", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_cmp_per_index_init), + i_s_cmp_per_index_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; UNIV_INTERN struct st_maria_plugin i_s_innodb_cmp_per_index_reset = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_CMP_PER_INDEX_RESET"), + "INNODB_CMP_PER_INDEX_RESET", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Statistics for the InnoDB compression (per index);" - " reset cumulated counts"), + "Statistics for the InnoDB compression (per index);" + " reset cumulated counts", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_cmp_per_index_reset_init), + i_s_cmp_per_index_reset_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table information_schema.innodb_cmpmem. */ -static ST_FIELD_INFO i_s_cmpmem_fields_info[] = -{ - {STRUCT_FLD(field_name, "page_size"), - STRUCT_FLD(field_length, 5), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Buddy Block Size"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "buffer_pool_instance"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Buffer Pool Id"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "pages_used"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Currently in Use"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "pages_free"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Currently Available"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "relocation_ops"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Number of Relocations"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - {STRUCT_FLD(field_name, "relocation_time"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, "Total Duration of Relocations," - " in Seconds"), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO +static ST_FIELD_INFO i_s_cmpmem_fields_info[]= +{ + {"page_size", 5, MYSQL_TYPE_LONG, + 0, 0, "Buddy Block Size", SKIP_OPEN_TABLE}, + {"buffer_pool_instance", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Buffer Pool Id", SKIP_OPEN_TABLE}, + {"pages_used", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Currently in Use", SKIP_OPEN_TABLE}, + {"pages_free", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Currently Available", SKIP_OPEN_TABLE}, + {"relocation_ops", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, 0, "Total Number of Relocations", SKIP_OPEN_TABLE}, + {"relocation_time", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "Total Duration of Relocations, in Seconds", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -2114,258 +1814,155 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_cmpmem = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_CMPMEM"), + "INNODB_CMPMEM", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Statistics for the InnoDB compressed buffer pool"), + "Statistics for the InnoDB compressed buffer pool", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_cmpmem_init), + i_s_cmpmem_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; UNIV_INTERN struct st_maria_plugin i_s_innodb_cmpmem_reset = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_CMPMEM_RESET"), + "INNODB_CMPMEM_RESET", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Statistics for the InnoDB compressed buffer pool;" - " reset cumulated counts"), + "Statistics for the InnoDB compressed buffer pool;" + " reset cumulated counts", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_cmpmem_reset_init), + i_s_cmpmem_reset_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.innodb_metrics */ -static ST_FIELD_INFO innodb_metrics_fields_info[] = +static ST_FIELD_INFO innodb_metrics_fields_info[]= { #define METRIC_NAME 0 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define METRIC_SUBSYS 1 - {STRUCT_FLD(field_name, "SUBSYSTEM"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SUBSYSTEM", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define METRIC_VALUE_START 2 - {STRUCT_FLD(field_name, "COUNT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"COUNT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define METRIC_MAX_VALUE_START 3 - {STRUCT_FLD(field_name, "MAX_COUNT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MAX_COUNT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_MIN_VALUE_START 4 - {STRUCT_FLD(field_name, "MIN_COUNT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MIN_COUNT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_AVG_VALUE_START 5 - {STRUCT_FLD(field_name, "AVG_COUNT"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"AVG_COUNT", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_VALUE_RESET 6 - {STRUCT_FLD(field_name, "COUNT_RESET"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"COUNT_RESET", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define METRIC_MAX_VALUE_RESET 7 - {STRUCT_FLD(field_name, "MAX_COUNT_RESET"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MAX_COUNT_RESET", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_MIN_VALUE_RESET 8 - {STRUCT_FLD(field_name, "MIN_COUNT_RESET"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MIN_COUNT_RESET", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_AVG_VALUE_RESET 9 - {STRUCT_FLD(field_name, "AVG_COUNT_RESET"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"AVG_COUNT_RESET", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_START_TIME 10 - {STRUCT_FLD(field_name, "TIME_ENABLED"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TIME_ENABLED", 0, MYSQL_TYPE_DATETIME, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_STOP_TIME 11 - {STRUCT_FLD(field_name, "TIME_DISABLED"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TIME_DISABLED", 0, MYSQL_TYPE_DATETIME, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_TIME_ELAPSED 12 - {STRUCT_FLD(field_name, "TIME_ELAPSED"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TIME_ELAPSED", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_RESET_TIME 13 - {STRUCT_FLD(field_name, "TIME_RESET"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TIME_RESET", 0, MYSQL_TYPE_DATETIME, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define METRIC_STATUS 14 - {STRUCT_FLD(field_name, "STATUS"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"STATUS", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define METRIC_TYPE 15 - {STRUCT_FLD(field_name, "TYPE"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TYPE", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define METRIC_DESC 16 - {STRUCT_FLD(field_name, "COMMENT"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"COMMENT", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -2689,63 +2286,56 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_metrics = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_METRICS"), + "INNODB_METRICS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB Metrics Info"), + "InnoDB Metrics Info", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_metrics_init), + innodb_metrics_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.innodb_ft_default_stopword */ -static ST_FIELD_INFO i_s_stopword_fields_info[] = +static ST_FIELD_INFO i_s_stopword_fields_info[]= { #define STOPWORD_VALUE 0 - {STRUCT_FLD(field_name, "value"), - STRUCT_FLD(field_length, TRX_ID_MAX_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"value", TRX_ID_MAX_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -2802,65 +2392,59 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_ft_default_stopword = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_FT_DEFAULT_STOPWORD"), + "INNODB_FT_DEFAULT_STOPWORD", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "Default stopword list for InnoDB Full Text Search"), + "Default stopword list for InnoDB Full Text Search", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_stopword_init), + i_s_stopword_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_FT_DELETED INFORMATION_SCHEMA.INNODB_FT_BEING_DELETED */ -static ST_FIELD_INFO i_s_fts_doc_fields_info[] = +static ST_FIELD_INFO i_s_fts_doc_fields_info[]= { #define I_S_FTS_DOC_ID 0 - {STRUCT_FLD(field_name, "DOC_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"DOC_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -2982,49 +2566,49 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_ft_deleted = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_FT_DELETED"), + "INNODB_FT_DELETED", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "INNODB AUXILIARY FTS DELETED TABLE"), + "INNODB AUXILIARY FTS DELETED TABLE", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_fts_deleted_init), + i_s_fts_deleted_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /*******************************************************************//** @@ -3065,110 +2649,74 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_ft_being_deleted = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_FT_BEING_DELETED"), + "INNODB_FT_BEING_DELETED", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "INNODB AUXILIARY FTS BEING DELETED TABLE"), + "INNODB AUXILIARY FTS BEING DELETED TABLE", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_fts_being_deleted_init), + i_s_fts_being_deleted_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHED and INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE */ -static ST_FIELD_INFO i_s_fts_index_fields_info[] = +static ST_FIELD_INFO i_s_fts_index_fields_info[]= { #define I_S_FTS_WORD 0 - {STRUCT_FLD(field_name, "WORD"), - STRUCT_FLD(field_length, FTS_MAX_WORD_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"WORD", FTS_MAX_WORD_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define I_S_FTS_FIRST_DOC_ID 1 - {STRUCT_FLD(field_name, "FIRST_DOC_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FIRST_DOC_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define I_S_FTS_LAST_DOC_ID 2 - {STRUCT_FLD(field_name, "LAST_DOC_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"LAST_DOC_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define I_S_FTS_DOC_COUNT 3 - {STRUCT_FLD(field_name, "DOC_COUNT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"DOC_COUNT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define I_S_FTS_ILIST_DOC_ID 4 - {STRUCT_FLD(field_name, "DOC_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"DOC_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define I_S_FTS_ILIST_DOC_POS 5 - {STRUCT_FLD(field_name, "POSITION"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"POSITION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -3369,49 +2917,49 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_ft_index_cache = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_FT_INDEX_CACHE"), + "INNODB_FT_INDEX_CACHE", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "INNODB AUXILIARY FTS INDEX CACHED"), + "INNODB AUXILIARY FTS INDEX CACHED", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_fts_index_cache_init), + i_s_fts_index_cache_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /*******************************************************************//** @@ -3809,73 +3357,59 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_ft_index_table = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_FT_INDEX_TABLE"), + "INNODB_FT_INDEX_TABLE", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "INNODB AUXILIARY FTS INDEX TABLE"), + "INNODB AUXILIARY FTS INDEX TABLE", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_fts_index_table_init), + i_s_fts_index_table_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_FT_CONFIG */ -static ST_FIELD_INFO i_s_fts_config_fields_info[] = +static ST_FIELD_INFO i_s_fts_config_fields_info[]= { #define FTS_CONFIG_KEY 0 - {STRUCT_FLD(field_name, "KEY"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"KEY", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define FTS_CONFIG_VALUE 1 - {STRUCT_FLD(field_name, "VALUE"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"VALUE", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; static const char* fts_config_key[] = { @@ -4017,343 +3551,154 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_ft_config = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_FT_CONFIG"), + "INNODB_FT_CONFIG", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "INNODB AUXILIARY FTS CONFIG TABLE"), + "INNODB AUXILIARY FTS CONFIG TABLE", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_fts_config_init), + i_s_fts_config_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INNODB_BUFFER_POOL_STATS. */ -static ST_FIELD_INFO i_s_innodb_buffer_stats_fields_info[] = +static ST_FIELD_INFO i_s_innodb_buffer_stats_fields_info[]= { #define IDX_BUF_STATS_POOL_ID 0 - {STRUCT_FLD(field_name, "POOL_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"POOL_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_POOL_SIZE 1 - {STRUCT_FLD(field_name, "POOL_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"POOL_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_FREE_BUFFERS 2 - {STRUCT_FLD(field_name, "FREE_BUFFERS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FREE_BUFFERS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_LRU_LEN 3 - {STRUCT_FLD(field_name, "DATABASE_PAGES"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"DATABASE_PAGES", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_OLD_LRU_LEN 4 - {STRUCT_FLD(field_name, "OLD_DATABASE_PAGES"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"OLD_DATABASE_PAGES", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_FLUSH_LIST_LEN 5 - {STRUCT_FLD(field_name, "MODIFIED_DATABASE_PAGES"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MODIFIED_DATABASE_PAGES", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PENDING_ZIP 6 - {STRUCT_FLD(field_name, "PENDING_DECOMPRESS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PENDING_DECOMPRESS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PENDING_READ 7 - {STRUCT_FLD(field_name, "PENDING_READS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PENDING_READS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_FLUSH_LRU 8 - {STRUCT_FLD(field_name, "PENDING_FLUSH_LRU"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PENDING_FLUSH_LRU", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_FLUSH_LIST 9 - {STRUCT_FLD(field_name, "PENDING_FLUSH_LIST"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PENDING_FLUSH_LIST", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_YOUNG 10 - {STRUCT_FLD(field_name, "PAGES_MADE_YOUNG"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_MADE_YOUNG", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_NOT_YOUNG 11 - {STRUCT_FLD(field_name, "PAGES_NOT_MADE_YOUNG"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_NOT_MADE_YOUNG", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_YOUNG_RATE 12 - {STRUCT_FLD(field_name, "PAGES_MADE_YOUNG_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_MADE_YOUNG_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_NOT_YOUNG_RATE 13 - {STRUCT_FLD(field_name, "PAGES_MADE_NOT_YOUNG_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_MADE_NOT_YOUNG_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_READ 14 - {STRUCT_FLD(field_name, "NUMBER_PAGES_READ"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_PAGES_READ", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_CREATED 15 - {STRUCT_FLD(field_name, "NUMBER_PAGES_CREATED"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_PAGES_CREATED", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_WRITTEN 16 - {STRUCT_FLD(field_name, "NUMBER_PAGES_WRITTEN"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_PAGES_WRITTEN", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_READ_RATE 17 - {STRUCT_FLD(field_name, "PAGES_READ_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_READ_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_CREATE_RATE 18 - {STRUCT_FLD(field_name, "PAGES_CREATE_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_CREATE_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_PAGE_WRITTEN_RATE 19 - {STRUCT_FLD(field_name, "PAGES_WRITTEN_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGES_WRITTEN_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_GET 20 - {STRUCT_FLD(field_name, "NUMBER_PAGES_GET"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_PAGES_GET", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_HIT_RATE 21 - {STRUCT_FLD(field_name, "HIT_RATE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"HIT_RATE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_MADE_YOUNG_PCT 22 - {STRUCT_FLD(field_name, "YOUNG_MAKE_PER_THOUSAND_GETS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"YOUNG_MAKE_PER_THOUSAND_GETS", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_NOT_MADE_YOUNG_PCT 23 - {STRUCT_FLD(field_name, "NOT_YOUNG_MAKE_PER_THOUSAND_GETS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NOT_YOUNG_MAKE_PER_THOUSAND_GETS", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_READ_AHREAD 24 - {STRUCT_FLD(field_name, "NUMBER_PAGES_READ_AHEAD"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_PAGES_READ_AHEAD", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_READ_AHEAD_EVICTED 25 - {STRUCT_FLD(field_name, "NUMBER_READ_AHEAD_EVICTED"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_READ_AHEAD_EVICTED", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_READ_AHEAD_RATE 26 - {STRUCT_FLD(field_name, "READ_AHEAD_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"READ_AHEAD_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_READ_AHEAD_EVICT_RATE 27 - {STRUCT_FLD(field_name, "READ_AHEAD_EVICTED_RATE"), - STRUCT_FLD(field_length, MAX_FLOAT_STR_LENGTH), - STRUCT_FLD(field_type, MYSQL_TYPE_FLOAT), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"READ_AHEAD_EVICTED_RATE", MAX_FLOAT_STR_LENGTH, MYSQL_TYPE_FLOAT, + 0, 0, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_LRU_IO_SUM 28 - {STRUCT_FLD(field_name, "LRU_IO_TOTAL"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"LRU_IO_TOTAL", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_LRU_IO_CUR 29 - {STRUCT_FLD(field_name, "LRU_IO_CURRENT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"LRU_IO_CURRENT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_UNZIP_SUM 30 - {STRUCT_FLD(field_name, "UNCOMPRESS_TOTAL"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"UNCOMPRESS_TOTAL", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_STATS_UNZIP_CUR 31 - {STRUCT_FLD(field_name, "UNCOMPRESS_CURRENT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"UNCOMPRESS_CURRENT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -4564,237 +3909,117 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_stats = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_BUFFER_POOL_STATS"), + "INNODB_BUFFER_POOL_STATS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB Buffer Pool Statistics Information "), + "InnoDB Buffer Pool Statistics Information ", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_innodb_buffer_pool_stats_init), + i_s_innodb_buffer_pool_stats_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /* Fields of the dynamic table INNODB_BUFFER_POOL_PAGE. */ -static ST_FIELD_INFO i_s_innodb_buffer_page_fields_info[] = +static ST_FIELD_INFO i_s_innodb_buffer_page_fields_info[]= { #define IDX_BUFFER_POOL_ID 0 - {STRUCT_FLD(field_name, "POOL_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"POOL_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_BLOCK_ID 1 - {STRUCT_FLD(field_name, "BLOCK_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"BLOCK_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_SPACE 2 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_NUM 3 - {STRUCT_FLD(field_name, "PAGE_NUMBER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_NUMBER", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_TYPE 4 - {STRUCT_FLD(field_name, "PAGE_TYPE"), - STRUCT_FLD(field_length, 64), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_TYPE", 64, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_FLUSH_TYPE 5 - {STRUCT_FLD(field_name, "FLUSH_TYPE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FLUSH_TYPE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_FIX_COUNT 6 - {STRUCT_FLD(field_name, "FIX_COUNT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FIX_COUNT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #ifdef BTR_CUR_HASH_ADAPT -#define IDX_BUFFER_PAGE_HASHED 7 - {STRUCT_FLD(field_name, "IS_HASHED"), - STRUCT_FLD(field_length, 3), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, +# define IDX_BUFFER_PAGE_HASHED 7 + {"IS_HASHED", 3, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #endif /* BTR_CUR_HASH_ADAPT */ - #define IDX_BUFFER_PAGE_NEWEST_MOD 7 + I_S_AHI - {STRUCT_FLD(field_name, "NEWEST_MODIFICATION"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NEWEST_MODIFICATION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_OLDEST_MOD 8 + I_S_AHI - {STRUCT_FLD(field_name, "OLDEST_MODIFICATION"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"OLDEST_MODIFICATION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_ACCESS_TIME 9 + I_S_AHI - {STRUCT_FLD(field_name, "ACCESS_TIME"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ACCESS_TIME", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_TABLE_NAME 10 + I_S_AHI - {STRUCT_FLD(field_name, "TABLE_NAME"), - STRUCT_FLD(field_length, 1024), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_NAME", 1024, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_INDEX_NAME 11 + I_S_AHI - {STRUCT_FLD(field_name, "INDEX_NAME"), - STRUCT_FLD(field_length, 1024), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"INDEX_NAME", 1024, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_NUM_RECS 12 + I_S_AHI - {STRUCT_FLD(field_name, "NUMBER_RECORDS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_RECORDS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_DATA_SIZE 13 + I_S_AHI - {STRUCT_FLD(field_name, "DATA_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"DATA_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_ZIP_SIZE 14 + I_S_AHI - {STRUCT_FLD(field_name, "COMPRESSED_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"COMPRESSED_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_STATE 15 + I_S_AHI - {STRUCT_FLD(field_name, "PAGE_STATE"), - STRUCT_FLD(field_length, 64), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_STATE", 64, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_IO_FIX 16 + I_S_AHI - {STRUCT_FLD(field_name, "IO_FIX"), - STRUCT_FLD(field_length, 64), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"IO_FIX", 64, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_IS_OLD 17 + I_S_AHI - {STRUCT_FLD(field_name, "IS_OLD"), - STRUCT_FLD(field_length, 3), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"IS_OLD", 3, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUFFER_PAGE_FREE_CLOCK 18 + I_S_AHI - {STRUCT_FLD(field_name, "FREE_PAGE_CLOCK"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"FREE_PAGE_CLOCK", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -5293,236 +4518,116 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_page = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_BUFFER_PAGE"), + "INNODB_BUFFER_PAGE", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB Buffer Page Information"), + "InnoDB Buffer Page Information", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_innodb_buffer_page_init), + i_s_innodb_buffer_page_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; -static ST_FIELD_INFO i_s_innodb_buf_page_lru_fields_info[] = +static ST_FIELD_INFO i_s_innodb_buf_page_lru_fields_info[]= { #define IDX_BUF_LRU_POOL_ID 0 - {STRUCT_FLD(field_name, "POOL_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"POOL_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_POS 1 - {STRUCT_FLD(field_name, "LRU_POSITION"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"LRU_POSITION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_SPACE 2 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_NUM 3 - {STRUCT_FLD(field_name, "PAGE_NUMBER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_NUMBER", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_TYPE 4 - {STRUCT_FLD(field_name, "PAGE_TYPE"), - STRUCT_FLD(field_length, 64), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_TYPE", 64, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_FLUSH_TYPE 5 - {STRUCT_FLD(field_name, "FLUSH_TYPE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FLUSH_TYPE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_FIX_COUNT 6 - {STRUCT_FLD(field_name, "FIX_COUNT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FIX_COUNT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #ifdef BTR_CUR_HASH_ADAPT -#define IDX_BUF_LRU_PAGE_HASHED 7 - {STRUCT_FLD(field_name, "IS_HASHED"), - STRUCT_FLD(field_length, 3), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, +# define IDX_BUF_LRU_PAGE_HASHED 7 + {"IS_HASHED", 3, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #endif /* BTR_CUR_HASH_ADAPT */ - #define IDX_BUF_LRU_PAGE_NEWEST_MOD 7 + I_S_AHI - {STRUCT_FLD(field_name, "NEWEST_MODIFICATION"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NEWEST_MODIFICATION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_OLDEST_MOD 8 + I_S_AHI - {STRUCT_FLD(field_name, "OLDEST_MODIFICATION"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"OLDEST_MODIFICATION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_ACCESS_TIME 9 + I_S_AHI - {STRUCT_FLD(field_name, "ACCESS_TIME"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ACCESS_TIME", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_TABLE_NAME 10 + I_S_AHI - {STRUCT_FLD(field_name, "TABLE_NAME"), - STRUCT_FLD(field_length, 1024), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_NAME", 1024, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_INDEX_NAME 11 + I_S_AHI - {STRUCT_FLD(field_name, "INDEX_NAME"), - STRUCT_FLD(field_length, 1024), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"INDEX_NAME", 1024, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_NUM_RECS 12 + I_S_AHI - {STRUCT_FLD(field_name, "NUMBER_RECORDS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUMBER_RECORDS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_DATA_SIZE 13 + I_S_AHI - {STRUCT_FLD(field_name, "DATA_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"DATA_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_ZIP_SIZE 14 + I_S_AHI - {STRUCT_FLD(field_name, "COMPRESSED_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"COMPRESSED_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_STATE 15 + I_S_AHI - {STRUCT_FLD(field_name, "COMPRESSED"), - STRUCT_FLD(field_length, 3), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"COMPRESSED", 3, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_IO_FIX 16 + I_S_AHI - {STRUCT_FLD(field_name, "IO_FIX"), - STRUCT_FLD(field_length, 64), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"IO_FIX", 64, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_IS_OLD 17 + I_S_AHI - {STRUCT_FLD(field_name, "IS_OLD"), - STRUCT_FLD(field_length, 3), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"IS_OLD", 3, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define IDX_BUF_LRU_PAGE_FREE_CLOCK 18 + I_S_AHI - {STRUCT_FLD(field_name, "FREE_PAGE_CLOCK"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"FREE_PAGE_CLOCK", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -5844,49 +4949,49 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_page_lru = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_BUFFER_PAGE_LRU"), + "INNODB_BUFFER_PAGE_LRU", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB Buffer Page in LRU"), + "InnoDB Buffer Page in LRU", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, i_s_innodb_buffer_page_lru_init), + i_s_innodb_buffer_page_lru_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /*******************************************************************//** @@ -5907,90 +5012,36 @@ i_s_common_deinit( /** SYS_TABLES ***************************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.SYS_TABLES */ -static ST_FIELD_INFO innodb_sys_tables_fields_info[] = +static ST_FIELD_INFO innodb_sys_tables_fields_info[]= { #define SYS_TABLES_ID 0 - {STRUCT_FLD(field_name, "TABLE_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, MAX_FULL_NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", MAX_FULL_NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_FLAG 2 - {STRUCT_FLD(field_name, "FLAG"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FLAG", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_NUM_COLUMN 3 - {STRUCT_FLD(field_name, "N_COLS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"N_COLS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_SPACE 4 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_FILE_FORMAT 5 - {STRUCT_FLD(field_name, "FILE_FORMAT"), - STRUCT_FLD(field_length, 10), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FILE_FORMAT", 10, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_ROW_FORMAT 6 - {STRUCT_FLD(field_name, "ROW_FORMAT"), - STRUCT_FLD(field_length, 12), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ROW_FORMAT", 12, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_ZIP_PAGE_SIZE 7 - {STRUCT_FLD(field_name, "ZIP_PAGE_SIZE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ZIP_PAGE_SIZE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLES_SPACE_TYPE 8 - {STRUCT_FLD(field_name, "SPACE_TYPE"), - STRUCT_FLD(field_length, 10), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"SPACE_TYPE", 10, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -6159,137 +5210,84 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_tables = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_TABLES"), + "INNODB_SYS_TABLES", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_TABLES"), + "InnoDB SYS_TABLES", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_tables_init), + innodb_sys_tables_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_TABLESTATS ***********************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.SYS_TABLESTATS */ -static ST_FIELD_INFO innodb_sys_tablestats_fields_info[] = +static ST_FIELD_INFO innodb_sys_tablestats_fields_info[]= { #define SYS_TABLESTATS_ID 0 - {STRUCT_FLD(field_name, "TABLE_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_INIT 2 - {STRUCT_FLD(field_name, "STATS_INITIALIZED"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"STATS_INITIALIZED", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_NROW 3 - {STRUCT_FLD(field_name, "NUM_ROWS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NUM_ROWS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_CLUST_SIZE 4 - {STRUCT_FLD(field_name, "CLUST_INDEX_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"CLUST_INDEX_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_INDEX_SIZE 5 - {STRUCT_FLD(field_name, "OTHER_INDEX_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"OTHER_INDEX_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_MODIFIED 6 - {STRUCT_FLD(field_name, "MODIFIED_COUNTER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MODIFIED_COUNTER", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_AUTONINC 7 - {STRUCT_FLD(field_name, "AUTOINC"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"AUTOINC", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESTATS_TABLE_REF_COUNT 8 - {STRUCT_FLD(field_name, "REF_COUNT"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"REF_COUNT", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, + + END_OF_ST_FIELD_INFO }; /** Populate information_schema.innodb_sys_tablestats table with information @@ -6470,128 +5468,80 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_tablestats = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_TABLESTATS"), + "INNODB_SYS_TABLESTATS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_TABLESTATS"), + "InnoDB SYS_TABLESTATS", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_tablestats_init), + innodb_sys_tablestats_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_INDEXES **************************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.SYS_INDEXES */ -static ST_FIELD_INFO innodb_sysindex_fields_info[] = +static ST_FIELD_INFO innodb_sysindex_fields_info[]= { #define SYS_INDEX_ID 0 - {STRUCT_FLD(field_name, "INDEX_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"INDEX_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_TABLE_ID 2 - {STRUCT_FLD(field_name, "TABLE_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_TYPE 3 - {STRUCT_FLD(field_name, "TYPE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TYPE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_NUM_FIELDS 4 - {STRUCT_FLD(field_name, "N_FIELDS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"N_FIELDS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_PAGE_NO 5 - {STRUCT_FLD(field_name, "PAGE_NO"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_NO", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_SPACE 6 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_INDEX_MERGE_THRESHOLD 7 - {STRUCT_FLD(field_name, "MERGE_THRESHOLD"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"MERGE_THRESHOLD", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -6741,110 +5691,74 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_indexes = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_INDEXES"), + "INNODB_SYS_INDEXES", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_INDEXES"), + "InnoDB SYS_INDEXES", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_indexes_init), + innodb_sys_indexes_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_COLUMNS **************************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_COLUMNS */ -static ST_FIELD_INFO innodb_sys_columns_fields_info[] = +static ST_FIELD_INFO innodb_sys_columns_fields_info[]= { #define SYS_COLUMN_TABLE_ID 0 - {STRUCT_FLD(field_name, "TABLE_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_COLUMN_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_COLUMN_POSITION 2 - {STRUCT_FLD(field_name, "POS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"POS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_COLUMN_MTYPE 3 - {STRUCT_FLD(field_name, "MTYPE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MTYPE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_COLUMN__PRTYPE 4 - {STRUCT_FLD(field_name, "PRTYPE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PRTYPE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_COLUMN_COLUMN_LEN 5 - {STRUCT_FLD(field_name, "LEN"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"LEN", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, 0, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -6987,83 +5901,65 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_columns = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_COLUMNS"), + "INNODB_SYS_COLUMNS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_COLUMNS"), + "InnoDB SYS_COLUMNS", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_columns_init), + innodb_sys_columns_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_VIRTUAL **************************************************/ /** Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_VIRTUAL */ -static ST_FIELD_INFO innodb_sys_virtual_fields_info[] = +static ST_FIELD_INFO innodb_sys_virtual_fields_info[]= { #define SYS_VIRTUAL_TABLE_ID 0 - {STRUCT_FLD(field_name, "TABLE_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"TABLE_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_VIRTUAL_POS 1 - {STRUCT_FLD(field_name, "POS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"POS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_VIRTUAL_BASE_POS 2 - {STRUCT_FLD(field_name, "BASE_POS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"BASE_POS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /** Function to populate the information_schema.innodb_sys_virtual with @@ -7195,82 +6091,64 @@ struct st_maria_plugin i_s_innodb_sys_virtual = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_VIRTUAL"), + "INNODB_SYS_VIRTUAL", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_VIRTUAL"), + "InnoDB SYS_VIRTUAL", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_virtual_init), + innodb_sys_virtual_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_FIELDS ***************************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_FIELDS */ -static ST_FIELD_INFO innodb_sys_fields_fields_info[] = +static ST_FIELD_INFO innodb_sys_fields_fields_info[]= { #define SYS_FIELD_INDEX_ID 0 - {STRUCT_FLD(field_name, "INDEX_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"INDEX_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_FIELD_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FIELD_POS 2 - {STRUCT_FLD(field_name, "POS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"POS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -7404,101 +6282,68 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_fields = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_FIELDS"), + "INNODB_SYS_FIELDS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_FIELDS"), + "InnoDB SYS_FIELDS", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_fields_init), + innodb_sys_fields_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_FOREIGN ********************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_FOREIGN */ -static ST_FIELD_INFO innodb_sys_foreign_fields_info[] = +static ST_FIELD_INFO innodb_sys_foreign_fields_info[]= { #define SYS_FOREIGN_ID 0 - {STRUCT_FLD(field_name, "ID"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ID", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_FOR_NAME 1 - {STRUCT_FLD(field_name, "FOR_NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FOR_NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_REF_NAME 2 - {STRUCT_FLD(field_name, "REF_NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"REF_NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_NUM_COL 3 - {STRUCT_FLD(field_name, "N_COLS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"N_COLS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_TYPE 4 - {STRUCT_FLD(field_name, "TYPE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"TYPE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -7629,92 +6474,65 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_foreign = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_FOREIGN"), + "INNODB_SYS_FOREIGN", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_FOREIGN"), + "InnoDB SYS_FOREIGN", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_foreign_init), + innodb_sys_foreign_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_FOREIGN_COLS ********************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS */ -static ST_FIELD_INFO innodb_sys_foreign_cols_fields_info[] = +static ST_FIELD_INFO innodb_sys_foreign_cols_fields_info[]= { #define SYS_FOREIGN_COL_ID 0 - {STRUCT_FLD(field_name, "ID"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ID", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_COL_FOR_NAME 1 - {STRUCT_FLD(field_name, "FOR_COL_NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FOR_COL_NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_COL_REF_NAME 2 - {STRUCT_FLD(field_name, "REF_COL_NAME"), - STRUCT_FLD(field_length, NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"REF_COL_NAME", NAME_LEN + 1, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_FOREIGN_COL_POS 3 - {STRUCT_FLD(field_name, "POS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"POS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -7846,156 +6664,89 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_foreign_cols = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_FOREIGN_COLS"), + "INNODB_SYS_FOREIGN_COLS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_FOREIGN_COLS"), + "InnoDB SYS_FOREIGN_COLS", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_foreign_cols_init), + innodb_sys_foreign_cols_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_TABLESPACES ********************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES */ -static ST_FIELD_INFO innodb_sys_tablespaces_fields_info[] = +static ST_FIELD_INFO innodb_sys_tablespaces_fields_info[]= { #define SYS_TABLESPACES_SPACE 0 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, MAX_FULL_NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", MAX_FULL_NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_FLAGS 2 - {STRUCT_FLD(field_name, "FLAG"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FLAG", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_FILE_FORMAT 3 - {STRUCT_FLD(field_name, "FILE_FORMAT"), - STRUCT_FLD(field_length, 10), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FILE_FORMAT", 10, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_ROW_FORMAT 4 - {STRUCT_FLD(field_name, "ROW_FORMAT"), - STRUCT_FLD(field_length, 22), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ROW_FORMAT", 22, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_PAGE_SIZE 5 - {STRUCT_FLD(field_name, "PAGE_SIZE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"PAGE_SIZE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_ZIP_PAGE_SIZE 6 - {STRUCT_FLD(field_name, "ZIP_PAGE_SIZE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ZIP_PAGE_SIZE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_SPACE_TYPE 7 - {STRUCT_FLD(field_name, "SPACE_TYPE"), - STRUCT_FLD(field_length, 10), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE_TYPE", 10, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_FS_BLOCK_SIZE 8 - {STRUCT_FLD(field_name, "FS_BLOCK_SIZE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FS_BLOCK_SIZE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_FILE_SIZE 9 - {STRUCT_FLD(field_name, "FILE_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"FILE_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_TABLESPACES_ALLOC_SIZE 10 - {STRUCT_FLD(field_name, "ALLOCATED_SIZE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO - + {"ALLOCATED_SIZE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -8215,74 +6966,61 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_tablespaces = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_TABLESPACES"), + "INNODB_SYS_TABLESPACES", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_TABLESPACES"), + "InnoDB SYS_TABLESPACES", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_tablespaces_init), + innodb_sys_tablespaces_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_DATAFILES ************************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_DATAFILES */ -static ST_FIELD_INFO innodb_sys_datafiles_fields_info[] = +static ST_FIELD_INFO innodb_sys_datafiles_fields_info[]= { #define SYS_DATAFILES_SPACE 0 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define SYS_DATAFILES_PATH 1 - {STRUCT_FLD(field_name, "PATH"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"PATH", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -8404,146 +7142,88 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_datafiles = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_DATAFILES"), + "INNODB_SYS_DATAFILES", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_DATAFILES"), + "InnoDB SYS_DATAFILES", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_datafiles_init), + innodb_sys_datafiles_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** TABLESPACES_ENCRYPTION ********************************************/ /* Fields of the table INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION */ -static ST_FIELD_INFO innodb_tablespaces_encryption_fields_info[] = +static ST_FIELD_INFO innodb_tablespaces_encryption_fields_info[]= { #define TABLESPACES_ENCRYPTION_SPACE 0 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, MAX_FULL_NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", MAX_FULL_NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_ENCRYPTION_SCHEME 2 - {STRUCT_FLD(field_name, "ENCRYPTION_SCHEME"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"ENCRYPTION_SCHEME", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_KEYSERVER_REQUESTS 3 - {STRUCT_FLD(field_name, "KEYSERVER_REQUESTS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"KEYSERVER_REQUESTS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_MIN_KEY_VERSION 4 - {STRUCT_FLD(field_name, "MIN_KEY_VERSION"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"MIN_KEY_VERSION", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_CURRENT_KEY_VERSION 5 - {STRUCT_FLD(field_name, "CURRENT_KEY_VERSION"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"CURRENT_KEY_VERSION", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_KEY_ROTATION_PAGE_NUMBER 6 - {STRUCT_FLD(field_name, "KEY_ROTATION_PAGE_NUMBER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"KEY_ROTATION_PAGE_NUMBER", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_KEY_ROTATION_MAX_PAGE_NUMBER 7 - {STRUCT_FLD(field_name, "KEY_ROTATION_MAX_PAGE_NUMBER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"KEY_ROTATION_MAX_PAGE_NUMBER", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_CURRENT_KEY_ID 8 - {STRUCT_FLD(field_name, "CURRENT_KEY_ID"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"CURRENT_KEY_ID", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_ENCRYPTION_ROTATING_OR_FLUSHING 9 - {STRUCT_FLD(field_name, "ROTATING_OR_FLUSHING"), - STRUCT_FLD(field_length, 1), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"ROTATING_OR_FLUSHING", 1, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -8678,128 +7358,83 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_tablespaces_encryption = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_TABLESPACES_ENCRYPTION"), + "INNODB_TABLESPACES_ENCRYPTION", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, "Google Inc"), + "Google Inc", /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB TABLESPACES_ENCRYPTION"), + "InnoDB TABLESPACES_ENCRYPTION", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_BSD), + PLUGIN_LICENSE_BSD, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_tablespaces_encryption_init), + innodb_tablespaces_encryption_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE) + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE }; /** TABLESPACES_SCRUBBING ********************************************/ /* Fields of the table INFORMATION_SCHEMA.INNODB_TABLESPACES_SCRUBBING */ -static ST_FIELD_INFO innodb_tablespaces_scrubbing_fields_info[] = +static ST_FIELD_INFO innodb_tablespaces_scrubbing_fields_info[]= { #define TABLESPACES_SCRUBBING_SPACE 0 - {STRUCT_FLD(field_name, "SPACE"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"SPACE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_NAME 1 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, MAX_FULL_NAME_LEN + 1), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"NAME", MAX_FULL_NAME_LEN + 1, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_COMPRESSED 2 - {STRUCT_FLD(field_name, "COMPRESSED"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"COMPRESSED", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_LAST_SCRUB_COMPLETED 3 - {STRUCT_FLD(field_name, "LAST_SCRUB_COMPLETED"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"LAST_SCRUB_COMPLETED", 0, MYSQL_TYPE_DATETIME, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_CURRENT_SCRUB_STARTED 4 - {STRUCT_FLD(field_name, "CURRENT_SCRUB_STARTED"), - STRUCT_FLD(field_length, 0), - STRUCT_FLD(field_type, MYSQL_TYPE_DATETIME), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"CURRENT_SCRUB_STARTED", 0, MYSQL_TYPE_DATETIME, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_CURRENT_SCRUB_ACTIVE_THREADS 5 - {STRUCT_FLD(field_name, "CURRENT_SCRUB_ACTIVE_THREADS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"CURRENT_SCRUB_ACTIVE_THREADS", MY_INT32_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED | MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_CURRENT_SCRUB_PAGE_NUMBER 6 - {STRUCT_FLD(field_name, "CURRENT_SCRUB_PAGE_NUMBER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - + {"CURRENT_SCRUB_PAGE_NUMBER", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define TABLESPACES_SCRUBBING_CURRENT_SCRUB_MAX_PAGE_NUMBER 7 - {STRUCT_FLD(field_name, "CURRENT_SCRUB_MAX_PAGE_NUMBER"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"CURRENT_SCRUB_MAX_PAGE_NUMBER", MY_INT64_NUM_DECIMAL_DIGITS, + MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /**********************************************************************//** @@ -8940,89 +7575,67 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_tablespaces_scrubbing = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_TABLESPACES_SCRUBBING"), + "INNODB_TABLESPACES_SCRUBBING", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, "Google Inc"), + "Google Inc", /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB TABLESPACES_SCRUBBING"), + "InnoDB TABLESPACES_SCRUBBING", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_BSD), + PLUGIN_LICENSE_BSD, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_tablespaces_scrubbing_init), + innodb_tablespaces_scrubbing_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE) + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE }; /** INNODB_MUTEXES *********************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_MUTEXES */ -static ST_FIELD_INFO innodb_mutexes_fields_info[] = +static ST_FIELD_INFO innodb_mutexes_fields_info[]= { #define MUTEXES_NAME 0 - {STRUCT_FLD(field_name, "NAME"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"NAME", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, 0, 0, "", SKIP_OPEN_TABLE}, #define MUTEXES_CREATE_FILE 1 - {STRUCT_FLD(field_name, "CREATE_FILE"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, 0), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"CREATE_FILE", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, 0, "", SKIP_OPEN_TABLE}, #define MUTEXES_CREATE_LINE 2 - {STRUCT_FLD(field_name, "CREATE_LINE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, + {"CREATE_LINE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, #define MUTEXES_OS_WAITS 3 - {STRUCT_FLD(field_name, "OS_WAITS"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO + {"OS_WAITS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; /*******************************************************************//** @@ -9184,258 +7797,103 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_mutexes = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_MUTEXES"), + "INNODB_MUTEXES", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, plugin_author), + plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_DATAFILES"), + "InnoDB SYS_DATAFILES", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_mutexes_init), + innodb_mutexes_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; /** SYS_SEMAPHORE_WAITS ************************************************/ /* Fields of the dynamic table INFORMATION_SCHEMA.INNODB_SYS_SEMAPHORE_WAITS */ -static ST_FIELD_INFO innodb_sys_semaphore_waits_fields_info[] = -{ - // SYS_SEMAPHORE_WAITS_THREAD_ID 0 - {STRUCT_FLD(field_name, "THREAD_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_OBJECT_NAME 1 - {STRUCT_FLD(field_name, "OBJECT_NAME"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_FILE 2 - {STRUCT_FLD(field_name, "FILE"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_LINE 3 - {STRUCT_FLD(field_name, "LINE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_WAIT_TIME 4 - {STRUCT_FLD(field_name, "WAIT_TIME"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_WAIT_OBJECT 5 - {STRUCT_FLD(field_name, "WAIT_OBJECT"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_WAIT_TYPE 6 - {STRUCT_FLD(field_name, "WAIT_TYPE"), - STRUCT_FLD(field_length, 16), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_HOLDER_THREAD_ID 7 - {STRUCT_FLD(field_name, "HOLDER_THREAD_ID"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_HOLDER_FILE 8 - {STRUCT_FLD(field_name, "HOLDER_FILE"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_HOLDER_LINE 9 - {STRUCT_FLD(field_name, "HOLDER_LINE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_CREATED_FILE 10 - {STRUCT_FLD(field_name, "CREATED_FILE"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_CREATED_LINE 11 - {STRUCT_FLD(field_name, "CREATED_LINE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_WRITER_THREAD 12 - {STRUCT_FLD(field_name, "WRITER_THREAD"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_RESERVATION_MODE 13 - {STRUCT_FLD(field_name, "RESERVATION_MODE"), - STRUCT_FLD(field_length, 16), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_READERS 14 - {STRUCT_FLD(field_name, "READERS"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_WAITERS_FLAG 15 - {STRUCT_FLD(field_name, "WAITERS_FLAG"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_LOCK_WORD 16 - {STRUCT_FLD(field_name, "LOCK_WORD"), - STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_LAST_READER_FILE 17 - {STRUCT_FLD(field_name, "LAST_READER_FILE"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_LAST_READER_LINE 18 - {STRUCT_FLD(field_name, "LAST_READER_LINE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_LAST_WRITER_FILE 19 - {STRUCT_FLD(field_name, "LAST_WRITER_FILE"), - STRUCT_FLD(field_length, OS_FILE_MAX_PATH), - STRUCT_FLD(field_type, MYSQL_TYPE_STRING), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_MAYBE_NULL), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_LAST_WRITER_LINE 20 - {STRUCT_FLD(field_name, "LAST_WRITER_LINE"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - // SYS_SEMAPHORE_WAITS_OS_WAIT_COUNT 21 - {STRUCT_FLD(field_name, "OS_WAIT_COUNT"), - STRUCT_FLD(field_length, MY_INT32_NUM_DECIMAL_DIGITS), - STRUCT_FLD(field_type, MYSQL_TYPE_LONG), - STRUCT_FLD(value, 0), - STRUCT_FLD(field_flags, MY_I_S_UNSIGNED), - STRUCT_FLD(old_name, ""), - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)}, - - END_OF_ST_FIELD_INFO +static ST_FIELD_INFO innodb_sys_semaphore_waits_fields_info[]= +{ + {"THREAD_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"OBJECT_NAME", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"FILE", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"LINE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"WAIT_TIME", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"WAIT_OBJECT", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"WAIT_TYPE", 16, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"HOLDER_THREAD_ID", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"HOLDER_FILE", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"HOLDER_LINE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"CREATED_FILE", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"CREATED_LINE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"WRITER_THREAD", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"RESERVATION_MODE", 16, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"READERS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"WAITERS_FLAG", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"LOCK_WORD", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"LAST_READER_FILE", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"LAST_READER_LINE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"LAST_WRITER_FILE", OS_FILE_MAX_PATH, MYSQL_TYPE_STRING, + 0, MY_I_S_MAYBE_NULL, "", SKIP_OPEN_TABLE}, + {"LAST_WRITER_LINE", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + {"OS_WAIT_COUNT", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, + 0, MY_I_S_UNSIGNED, "", SKIP_OPEN_TABLE}, + END_OF_ST_FIELD_INFO }; - /*******************************************************************//** Bind the dynamic table INFORMATION_SCHEMA.INNODB_SYS_SEMAPHORE_WAITS @return 0 on success */ @@ -9461,47 +7919,47 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_semaphore_waits = { /* the plugin type (a MYSQL_XXX_PLUGIN value) */ /* int */ - STRUCT_FLD(type, MYSQL_INFORMATION_SCHEMA_PLUGIN), + MYSQL_INFORMATION_SCHEMA_PLUGIN, /* pointer to type-specific plugin descriptor */ /* void* */ - STRUCT_FLD(info, &i_s_info), + &i_s_info, /* plugin name */ /* const char* */ - STRUCT_FLD(name, "INNODB_SYS_SEMAPHORE_WAITS"), + "INNODB_SYS_SEMAPHORE_WAITS", /* plugin author (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(author, maria_plugin_author), + maria_plugin_author, /* general descriptive text (for SHOW PLUGINS) */ /* const char* */ - STRUCT_FLD(descr, "InnoDB SYS_SEMAPHORE_WAITS"), + "InnoDB SYS_SEMAPHORE_WAITS", /* the plugin license (PLUGIN_LICENSE_XXX) */ /* int */ - STRUCT_FLD(license, PLUGIN_LICENSE_GPL), + PLUGIN_LICENSE_GPL, /* the function to invoke when plugin is loaded */ /* int (*)(void*); */ - STRUCT_FLD(init, innodb_sys_semaphore_waits_init), + innodb_sys_semaphore_waits_init, /* the function to invoke when plugin is unloaded */ /* int (*)(void*); */ - STRUCT_FLD(deinit, i_s_common_deinit), + i_s_common_deinit, /* plugin version (for SHOW PLUGINS) */ /* unsigned int */ - STRUCT_FLD(version, INNODB_VERSION_SHORT), + INNODB_VERSION_SHORT, /* struct st_mysql_show_var* */ - STRUCT_FLD(status_vars, NULL), + NULL, /* struct st_mysql_sys_var** */ - STRUCT_FLD(system_vars, NULL), + NULL, /* Maria extension */ - STRUCT_FLD(version_info, INNODB_VERSION_STR), - STRUCT_FLD(maturity, MariaDB_PLUGIN_MATURITY_STABLE), + INNODB_VERSION_STR, + MariaDB_PLUGIN_MATURITY_STABLE, }; diff --git a/storage/innobase/handler/i_s.h b/storage/innobase/handler/i_s.h index ed4165bdeeb37..e83a0df332fee 100644 --- a/storage/innobase/handler/i_s.h +++ b/storage/innobase/handler/i_s.h @@ -92,26 +92,9 @@ do { \ } \ } while (0) -#if !defined __STRICT_ANSI__ && defined __GNUC__ && (__GNUC__) > 2 && !defined __INTEL_COMPILER && !defined __clang__ -#ifdef HAVE_C99_INITIALIZERS -#define STRUCT_FLD(name, value) .name = value -#else -#define STRUCT_FLD(name, value) name: value -#endif /* HAVE_C99_INITIALIZERS */ -#else -#define STRUCT_FLD(name, value) value -#endif - /* Don't use a static const variable here, as some C++ compilers (notably HPUX aCC: HP ANSI C++ B3910B A.03.65) can't handle it. */ -#define END_OF_ST_FIELD_INFO \ - {STRUCT_FLD(field_name, NULL), \ - STRUCT_FLD(field_length, 0), \ - STRUCT_FLD(field_type, MYSQL_TYPE_NULL), \ - STRUCT_FLD(value, 0), \ - STRUCT_FLD(field_flags, 0), \ - STRUCT_FLD(old_name, ""), \ - STRUCT_FLD(open_method, SKIP_OPEN_TABLE)} +#define END_OF_ST_FIELD_INFO {NULL,0,MYSQL_TYPE_NULL,0,0,"",SKIP_OPEN_TABLE} /** Fields on INFORMATION_SCHEMA.SYS_SEMAMPHORE_WAITS table */ #define SYS_SEMAPHORE_WAITS_THREAD_ID 0 diff --git a/storage/innobase/innodb.cmake b/storage/innobase/innodb.cmake index e2e74951f67ac..b6276f73e316d 100644 --- a/storage/innobase/innodb.cmake +++ b/storage/innobase/innodb.cmake @@ -228,11 +228,6 @@ ENDIF(NOT MSVC) CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) -CHECK_CXX_SOURCE_COMPILES("struct t1{ int a; char *b; }; struct t1 c= { .a=1, .b=0 }; main() { }" HAVE_C99_INITIALIZERS) -IF(HAVE_C99_INITIALIZERS) - ADD_DEFINITIONS(-DHAVE_C99_INITIALIZERS) -ENDIF() - SET(MUTEXTYPE "event" CACHE STRING "Mutex type: event, sys or futex") IF(MUTEXTYPE MATCHES "event") From 557bb344e44d1fdba13325c1e3bfa8c775851f07 Mon Sep 17 00:00:00 2001 From: Faustin Lammler Date: Fri, 20 Aug 2021 12:43:28 +0300 Subject: [PATCH 08/12] Unused flag creates cleaning issue (piuparts) The "$mysql_statedir/debian-$MAJOR_VER.flag" is not used by any maintainer script ("$mysql_datadir/debian-$MAJOR_VER.flag" is used, https://github.com/MariaDB/server/blob/10.6/debian/mariadb-server-10.6.postinst#L164). See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=985870 Fix also some minor typo. --- debian/mariadb-server-10.2.postinst | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/debian/mariadb-server-10.2.postinst b/debian/mariadb-server-10.2.postinst index 057b1bf540e87..14b2053b3a00e 100644 --- a/debian/mariadb-server-10.2.postinst +++ b/debian/mariadb-server-10.2.postinst @@ -117,7 +117,7 @@ EOF if [ ! -d "$mysql_datadir" -a ! -L "$mysql_datadir" ]; then mkdir "$mysql_datadir" ; fi if [ ! -d "$mysql_logdir" -a ! -L "$mysql_logdir" ]; then mkdir "$mysql_logdir" ; fi # When creating an ext3 jounal on an already mounted filesystem like e.g. - # /var/lib/mysql, you get a .journal file that is not modifyable by chown. + # /var/lib/mysql, you get a .journal file that is not modifiable by chown. # The mysql_statedir must not be writable by the mysql user under any # circumstances as it contains scripts that are executed by root. set +e @@ -147,10 +147,6 @@ EOF bash /usr/bin/mysql_install_db --rpm --cross-bootstrap --user=mysql --disable-log-bin 2>&1 | $ERR_LOGGER set -e - - # To avoid downgrades. - touch $mysql_statedir/debian-$MAJOR_VER.flag - ## On every reconfiguration the maintenance user is recreated. # # - It is easier to regenerate the password every time but as people @@ -259,7 +255,7 @@ EOF ;; esac -db_stop # in case invoke failes +db_stop # in case invoke fails # dh_systemd_start doesn't emit anything since we still ship /etc/init.d/mysql. # Thus MariaDB server is started via init.d script, which in turn redirects to From 08e5a3d2e3e0ee98a22f58adb9f76c686ba94a8a Mon Sep 17 00:00:00 2001 From: Thirunarayanan Balathandayuthapani Date: Thu, 19 Aug 2021 16:46:01 +0530 Subject: [PATCH 09/12] MDEV-26383 ASAN heap-use-after-free failure in btr_search_lazy_free Problem: ======= The last AHI page for two indexes of an dropped table is being freed at the same time by two threads. One thread frees the table heap and other thread tries to access table heap again. It leads to asan failure in btr_search_lazy_free(). Solution: ======== InnoDB uses autoinc_mutex to avoid the race condition in btr_search_lazy_free() --- storage/innobase/btr/btr0sea.cc | 18 +++++++++++++++++- storage/innobase/dict/dict0dict.cc | 2 +- storage/innobase/include/dict0mem.h | 1 - 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/storage/innobase/btr/btr0sea.cc b/storage/innobase/btr/btr0sea.cc index 7b80d22c77828..2e572fe32a8bb 100644 --- a/storage/innobase/btr/btr0sea.cc +++ b/storage/innobase/btr/btr0sea.cc @@ -253,6 +253,16 @@ ATTRIBUTE_COLD static void btr_search_lazy_free(dict_index_t *index) { ut_ad(index->freed()); dict_table_t *table= index->table; + bool non_exist_table= (table->id == 0); + + if (non_exist_table) + { + /* autoinc_mutex should be acquired to avoid the race condition + in case of multiple threads accessing the evicted table + or dropped table. */ + mysql_mutex_lock(&table->autoinc_mutex); + } + /* Perform the skipped steps of dict_index_remove_from_cache_low(). */ UT_LIST_REMOVE(table->freed_indexes, index); rw_lock_free(&index->lock); @@ -261,9 +271,15 @@ ATTRIBUTE_COLD static void btr_search_lazy_free(dict_index_t *index) if (!UT_LIST_GET_LEN(table->freed_indexes) && !UT_LIST_GET_LEN(table->indexes)) { - ut_ad(table->id == 0); + ut_ad(non_exist_table); + mysql_mutex_unlock(&table->autoinc_mutex); + mysql_mutex_destroy(&table->autoinc_mutex); dict_mem_table_free(table); + return; } + + if (non_exist_table) + mysql_mutex_unlock(&table->autoinc_mutex); } /** Clear the adaptive hash index on all pages in the buffer pool. */ diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index 48c37855d3e33..8243cf51526c8 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -1960,7 +1960,6 @@ dict_table_remove_from_cache_low( UT_DELETE(table->vc_templ); } - mysql_mutex_destroy(&table->autoinc_mutex); #ifdef BTR_CUR_HASH_ADAPT if (UNIV_UNLIKELY(UT_LIST_GET_LEN(table->freed_indexes) != 0)) { if (table->fts) { @@ -1975,6 +1974,7 @@ dict_table_remove_from_cache_low( } #endif /* BTR_CUR_HASH_ADAPT */ + mysql_mutex_destroy(&table->autoinc_mutex); dict_mem_table_free(table); } diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h index 5424b38a927f3..78244e2f6cb36 100644 --- a/storage/innobase/include/dict0mem.h +++ b/storage/innobase/include/dict0mem.h @@ -1912,7 +1912,6 @@ struct dict_table_t { determine whether we can evict the table from the dictionary cache. It is protected by lock_sys->mutex. */ ulint n_rec_locks; - private: /** Count of how many handles are opened to this table. Dropping of the table is NOT allowed until this count gets to zero. MySQL does NOT From 8a33d36dac5330336eca0543d814fa5d97a46361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 23 Aug 2021 09:00:37 +0300 Subject: [PATCH 10/12] Fix GCC 11.2.0 -Wmaybe-uninitialized TABLE_LIST::calc_md5(): Remove an untruthful const qualifier. thd_get_query_start_data(): Pass empty_clex_str instead of an uninitialized LEX_CSTRING. --- sql/sql_class.cc | 4 ++-- sql/sql_view.cc | 4 ++-- sql/table.cc | 6 +++--- sql/table.h | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sql/sql_class.cc b/sql/sql_class.cc index d9fb8181cd8f5..d3c090c330894 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -5156,8 +5156,8 @@ extern "C" bool thd_is_strict_mode(const MYSQL_THD thd) */ void thd_get_query_start_data(THD *thd, char *buf) { - LEX_CSTRING field_name; - Field_timestampf f((uchar *)buf, NULL, 0, Field::NONE, &field_name, NULL, 6); + Field_timestampf f((uchar *)buf, NULL, 0, Field::NONE, &empty_clex_str, + NULL, 6); f.store_TIME(thd->query_start(), thd->query_start_sec_part()); } diff --git a/sql/sql_view.cc b/sql/sql_view.cc index 8b398bf3996dc..258e6e2ca4e6b 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -1,5 +1,5 @@ /* Copyright (c) 2004, 2013, Oracle and/or its affiliates. - Copyright (c) 2011, 2016, MariaDB Corporation + Copyright (c) 2011, 2021, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -836,7 +836,7 @@ int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum, if ((view->md5.str= (char *)thd->alloc(32 + 1)) == NULL) DBUG_RETURN(HA_ADMIN_FAILED); } - view->calc_md5(view->md5.str); + view->calc_md5(const_cast(view->md5.str)); view->md5.length= 32; } view->mariadb_version= MYSQL_VERSION_ID; diff --git a/sql/table.cc b/sql/table.cc index be734b734bc90..18bb28e0863c2 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. - Copyright (c) 2008, 2020, MariaDB + Copyright (c) 2008, 2021, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -4879,12 +4879,12 @@ void TABLE::reset_item_list(List *item_list, uint skip) const buffer buffer for md5 writing */ -void TABLE_LIST::calc_md5(const char *buffer) +void TABLE_LIST::calc_md5(char *buffer) { uchar digest[16]; compute_md5_hash(digest, select_stmt.str, select_stmt.length); - sprintf((char *) buffer, + sprintf(buffer, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], diff --git a/sql/table.h b/sql/table.h index 53403bd00fed3..8e036e5a8ab99 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1,7 +1,7 @@ #ifndef TABLE_INCLUDED #define TABLE_INCLUDED /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. - Copyright (c) 2009, 2020, MariaDB + Copyright (c) 2009, 2021, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -2562,7 +2562,7 @@ struct TABLE_LIST List *partition_names; #endif /* WITH_PARTITION_STORAGE_ENGINE */ - void calc_md5(const char *buffer); + void calc_md5(char *buffer); int view_check_option(THD *thd, bool ignore_failure); bool create_field_translation(THD *thd); bool setup_underlying(THD *thd); From 7b492d6a70b78ad811cb5e81e1684f1b8e454690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 23 Aug 2021 09:13:55 +0300 Subject: [PATCH 11/12] MDEV-26458 Crash on ALTER TABLE after DISCARD TABLESPACE ha_innobase::check_if_supported_inplace_alter(): Do not invoke innobase_table_is_empty() if the tablespace has been discarded. That is, native ALTER TABLE in InnoDB will treat an empty table in the same way as a tablespace whose tablespace has been discarded. (Note: ALTER TABLE...ALGORITHM=COPY will fail if the tablespace has been discarded.) This fixes a crash that was introduced in commit c755974775a7a7f4fc24abeacd2fc9ea7bf0c247 (MDEV-19611). --- .../suite/innodb/r/innodb-alter-timestamp.result | 12 ++++++++++++ .../suite/innodb/t/innodb-alter-timestamp.test | 12 ++++++++++++ storage/innobase/handler/handler0alter.cc | 1 + 3 files changed, 25 insertions(+) diff --git a/mysql-test/suite/innodb/r/innodb-alter-timestamp.result b/mysql-test/suite/innodb/r/innodb-alter-timestamp.result index 6934484a488c0..280ab3ebee4ea 100644 --- a/mysql-test/suite/innodb/r/innodb-alter-timestamp.result +++ b/mysql-test/suite/innodb/r/innodb-alter-timestamp.result @@ -139,3 +139,15 @@ ALTER TABLE t1 ADD f3 DATE NOT NULL, ALGORITHM=INPLACE; ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY DROP TABLE t1; disconnect purge_control; +# +# MDEV-26458 SIGSEGV in innobase_table_is_empty() on ALTER TABLE +# +CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB; +ALTER TABLE t DISCARD TABLESPACE; +SET sql_mode='NO_ZERO_DATE'; +ALTER TABLE t ADD c DATE NOT NULL; +Warnings: +Warning 1814 Tablespace has been discarded for table `t` +SET sql_mode=DEFAULT; +DROP TABLE t; +# End of 10.3 tests diff --git a/mysql-test/suite/innodb/t/innodb-alter-timestamp.test b/mysql-test/suite/innodb/t/innodb-alter-timestamp.test index 28b09b18e10b3..e1c263dc5d012 100644 --- a/mysql-test/suite/innodb/t/innodb-alter-timestamp.test +++ b/mysql-test/suite/innodb/t/innodb-alter-timestamp.test @@ -103,3 +103,15 @@ INSERT INTO t1 VALUES (1, now()); ALTER TABLE t1 ADD f3 DATE NOT NULL, ALGORITHM=INPLACE; DROP TABLE t1; disconnect purge_control; + +--echo # +--echo # MDEV-26458 SIGSEGV in innobase_table_is_empty() on ALTER TABLE +--echo # +CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB; +ALTER TABLE t DISCARD TABLESPACE; +SET sql_mode='NO_ZERO_DATE'; +ALTER TABLE t ADD c DATE NOT NULL; +SET sql_mode=DEFAULT; +DROP TABLE t; + +--echo # End of 10.3 tests diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index ff7c355f2ddad..8418ad7316c89 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1164,6 +1164,7 @@ ha_innobase::check_if_supported_inplace_alter( /* '0000-00-00' value isn't allowed for datetime datatype for newly added column when table is not empty */ if (ha_alter_info->error_if_not_empty + && m_prebuilt->table->space && !innobase_table_is_empty(m_prebuilt->table)) { DBUG_RETURN(HA_ALTER_INPLACE_NOT_SUPPORTED); } From ca89489716890ebab5b207e49f3b157e78e0f8e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 23 Aug 2021 10:06:21 +0300 Subject: [PATCH 12/12] MDEV-26383 fixup: Consistently protect freed_indexes with autoinc_mutex To avoid potential race conditions between concurrent access to dict_table_t::freed_indexes, let us consistently use dict_table_t::autoinc_mutex. dict_table_remove_from_cache_low(): To avoid extensive hold time of table->autoinc_mutex, unconditionally free the FTS data structures. --- storage/innobase/btr/btr0sea.cc | 15 +++------------ storage/innobase/dict/dict0dict.cc | 28 +++++++++++++++++++--------- storage/innobase/include/dict0mem.h | 5 +++-- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/storage/innobase/btr/btr0sea.cc b/storage/innobase/btr/btr0sea.cc index 2e572fe32a8bb..0b8036c4fdf48 100644 --- a/storage/innobase/btr/btr0sea.cc +++ b/storage/innobase/btr/btr0sea.cc @@ -253,15 +253,7 @@ ATTRIBUTE_COLD static void btr_search_lazy_free(dict_index_t *index) { ut_ad(index->freed()); dict_table_t *table= index->table; - bool non_exist_table= (table->id == 0); - - if (non_exist_table) - { - /* autoinc_mutex should be acquired to avoid the race condition - in case of multiple threads accessing the evicted table - or dropped table. */ - mysql_mutex_lock(&table->autoinc_mutex); - } + mysql_mutex_lock(&table->autoinc_mutex); /* Perform the skipped steps of dict_index_remove_from_cache_low(). */ UT_LIST_REMOVE(table->freed_indexes, index); @@ -271,15 +263,14 @@ ATTRIBUTE_COLD static void btr_search_lazy_free(dict_index_t *index) if (!UT_LIST_GET_LEN(table->freed_indexes) && !UT_LIST_GET_LEN(table->indexes)) { - ut_ad(non_exist_table); + ut_ad(!table->id); mysql_mutex_unlock(&table->autoinc_mutex); mysql_mutex_destroy(&table->autoinc_mutex); dict_mem_table_free(table); return; } - if (non_exist_table) - mysql_mutex_unlock(&table->autoinc_mutex); + mysql_mutex_unlock(&table->autoinc_mutex); } /** Clear the adaptive hash index on all pages in the buffer pool. */ diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index 8243cf51526c8..d0f8185b92788 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -2,7 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2013, 2020, MariaDB Corporation. +Copyright (c) 2013, 2021, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1258,6 +1258,7 @@ dict_index_t *dict_index_t::clone_if_needed() return this; dict_index_t *prev= UT_LIST_GET_PREV(indexes, this); + mysql_mutex_lock(&table->autoinc_mutex); UT_LIST_REMOVE(table->indexes, this); UT_LIST_ADD_LAST(table->freed_indexes, this); dict_index_t *index= clone(); @@ -1266,6 +1267,7 @@ dict_index_t *dict_index_t::clone_if_needed() UT_LIST_INSERT_AFTER(table->indexes, prev, index); else UT_LIST_ADD_FIRST(table->indexes, index); + mysql_mutex_unlock(&table->autoinc_mutex); return index; } #endif /* BTR_CUR_HASH_ADAPT */ @@ -1961,15 +1963,21 @@ dict_table_remove_from_cache_low( } #ifdef BTR_CUR_HASH_ADAPT - if (UNIV_UNLIKELY(UT_LIST_GET_LEN(table->freed_indexes) != 0)) { - if (table->fts) { - fts_optimize_remove_table(table); - fts_free(table); - table->fts = NULL; - } + if (table->fts) { + fts_optimize_remove_table(table); + fts_free(table); + table->fts = NULL; + } + + mysql_mutex_lock(&table->autoinc_mutex); + + ulint freed = UT_LIST_GET_LEN(table->freed_indexes); + + table->vc_templ = NULL; + table->id = 0; + mysql_mutex_unlock(&table->autoinc_mutex); - table->vc_templ = NULL; - table->id = 0; + if (UNIV_UNLIKELY(freed != 0)) { return; } #endif /* BTR_CUR_HASH_ADAPT */ @@ -2244,8 +2252,10 @@ dict_index_remove_from_cache_low( zero. See also: dict_table_can_be_evicted() */ if (index->n_ahi_pages()) { + mysql_mutex_lock(&table->autoinc_mutex); index->set_freed(); UT_LIST_ADD_LAST(table->freed_indexes, index); + mysql_mutex_unlock(&table->autoinc_mutex); return; } #endif /* BTR_CUR_HASH_ADAPT */ diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h index 78244e2f6cb36..5fc0e3ebe1514 100644 --- a/storage/innobase/include/dict0mem.h +++ b/storage/innobase/include/dict0mem.h @@ -1713,7 +1713,8 @@ struct dict_table_t { UT_LIST_BASE_NODE_T(dict_index_t) indexes; #ifdef BTR_CUR_HASH_ADAPT /** List of detached indexes that are waiting to be freed along with - the last adaptive hash index entry */ + the last adaptive hash index entry. + Protected by autoinc_mutex (sic!) */ UT_LIST_BASE_NODE_T(dict_index_t) freed_indexes; #endif /* BTR_CUR_HASH_ADAPT */ @@ -1880,7 +1881,7 @@ struct dict_table_t { from a select. */ lock_t* autoinc_lock; - /** Mutex protecting the autoincrement counter. */ + /** Mutex protecting the autoinc counter and freed_indexes. */ mysql_mutex_t autoinc_mutex; /** Autoinc counter value to give to the next inserted row. */