diff options
author | Sergei Petrunia <sergey@mariadb.com> | 2023-02-15 12:03:12 +0300 |
---|---|---|
committer | Sergei Petrunia <sergey@mariadb.com> | 2023-02-15 12:03:12 +0300 |
commit | 10a974adc9b250431cac44555c7aa9354e5840df (patch) | |
tree | ceb40f857edb82caf29a4f41f919fc9709f199f2 /scripts | |
parent | f74bb51b30df03cf21aca040901089ed27821762 (diff) | |
parent | e8c7222ba3add52665e425740860325866b2aef5 (diff) | |
download | mariadb-git-10a974adc9b250431cac44555c7aa9354e5840df.tar.gz |
Merge 11.0-selectivity into 11.0
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/convert-debug-for-diff.sh | 23 | ||||
-rw-r--r-- | scripts/sys_schema/CMakeLists.txt | 1 | ||||
-rw-r--r-- | scripts/sys_schema/procedures/optimizer_switch.sql | 69 |
3 files changed, 90 insertions, 3 deletions
diff --git a/scripts/convert-debug-for-diff.sh b/scripts/convert-debug-for-diff.sh index 5b3ce05b815..4d266a6d526 100755 --- a/scripts/convert-debug-for-diff.sh +++ b/scripts/convert-debug-for-diff.sh @@ -18,8 +18,25 @@ while (<>) { - s/^T@[0-9]+\s*://g; - s/0x[0-9a-f]+(\s|\n|\))/#$1/g; - s/size: [0-9]+/size: #/g; + s/^T@[0-9]+ *://g; + s/0x[0-9a-f]+(\s|\n|\)|=|,|;)/#$1/g; + s/size: [0-9-]+/size: #/g; + s/memory_used: [0-9]+/memory_used: #/g; + s/Total alloc: [0-9]+/Total alloc: #/g; + s/(proc_info: )(.*:)[\d]+ /$1 /; + s/(select_cond.*) at line.*/$1/; + s/\(id: \d+ -> \d+\)/id: #->#/g; + s/(exit: found key at )\d+/$1#/g; + s/enter_stage: ([^\/]*)(\/.*\/)(.*)(:\d+)/enter_stage: ($1)/g; + s/crc: [0-9]+/crc: #/g; + s/ref_count: [0-9]+/ref_count: #/g; + s/block: # \(\d+\)/block: # (#)/g; + s/delete_mutex: # mutex: # \(id: \d+ \<\- \d+\)/delete_mutex: # mutex: # (id: # <- #)/g; + s/ShortTrID: [0-9]+/ShortTrID: #/g; + s/timestamp:[0-9]+/timestamp:#/g; + s/#sql_.*_(\d+)/#sql_xxx_$1/g; + s/fd: [0-9]+/fd: #/g; + s/query_id: (\d+)/query_id: #/g; + s|: .*/mysql-test/var/tmp/mysqld\.\d|d: var/tmp/mysqld|g; print $_; } diff --git a/scripts/sys_schema/CMakeLists.txt b/scripts/sys_schema/CMakeLists.txt index ccb268cc4fd..dc023174fc7 100644 --- a/scripts/sys_schema/CMakeLists.txt +++ b/scripts/sys_schema/CMakeLists.txt @@ -130,6 +130,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/views/p_s/session_ssl_status.sql ${CMAKE_CURRENT_SOURCE_DIR}/procedures/create_synonym_db.sql ${CMAKE_CURRENT_SOURCE_DIR}/procedures/execute_prepared_stmt.sql ${CMAKE_CURRENT_SOURCE_DIR}/procedures/diagnostics.sql +${CMAKE_CURRENT_SOURCE_DIR}/procedures/optimizer_switch.sql ${CMAKE_CURRENT_SOURCE_DIR}/procedures/ps_statement_avg_latency_histogram.sql ${CMAKE_CURRENT_SOURCE_DIR}/procedures/ps_trace_statement_digest.sql ${CMAKE_CURRENT_SOURCE_DIR}/procedures/ps_trace_thread.sql diff --git a/scripts/sys_schema/procedures/optimizer_switch.sql b/scripts/sys_schema/procedures/optimizer_switch.sql new file mode 100644 index 00000000000..febeabc1208 --- /dev/null +++ b/scripts/sys_schema/procedures/optimizer_switch.sql @@ -0,0 +1,69 @@ +-- Copyright (C) 2023, 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 +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +DROP PROCEDURE IF EXISTS optimizer_switch_choice; +DROP PROCEDURE IF EXISTS optimizer_switch_on; +DROP PROCEDURE IF EXISTS optimizer_switch_off; +DELIMITER $$ + +CREATE DEFINER='mariadb.sys'@'localhost' PROCEDURE optimizer_switch_choice(IN on_off VARCHAR(3)) +COMMENT 'return @@optimizer_switch options as a result set for easier readability' +SQL SECURITY INVOKER +NOT DETERMINISTIC +CONTAINS SQL +BEGIN + DECLARE tmp VARCHAR(1024); + DECLARE opt VARCHAR(1024); + DECLARE start INT; + DECLARE end INT; + DECLARE pos INT; + set tmp=concat(@@optimizer_switch,","); + CREATE OR REPLACE TEMPORARY TABLE tmp_opt_switch (a varchar(64), opt CHAR(3)) character set latin1 engine=heap; + set start=1; + FIND_OPTIONS: + LOOP + set pos= INSTR(SUBSTR(tmp, start), ","); + if (pos = 0) THEN + LEAVE FIND_OPTIONS; + END IF; + set opt= MID(tmp, start, pos-1); + set end= INSTR(opt, "="); + insert into tmp_opt_switch values(LEFT(opt,end-1),SUBSTR(opt,end+1)); + set start=start + pos; + END LOOP; + SELECT t.a as "option",t.opt from tmp_opt_switch as t where t.opt = on_off order by a; + DROP TEMPORARY TABLE tmp_opt_switch; +END$$ + +CREATE DEFINER='mariadb.sys'@'localhost' PROCEDURE optimizer_switch_on() +COMMENT 'return @@optimizer_switch options that are on' +SQL SECURITY INVOKER +NOT DETERMINISTIC +CONTAINS SQL +BEGIN + call optimizer_switch_choice("on"); +END$$ + +CREATE DEFINER='mariadb.sys'@'localhost' PROCEDURE optimizer_switch_off() +COMMENT 'return @@optimizer_switch options that are off' +SQL SECURITY INVOKER +NOT DETERMINISTIC +CONTAINS SQL +BEGIN + call optimizer_switch_choice("off"); +END$$ + +DELIMITER ; + |