summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSergei Petrunia <sergey@mariadb.com>2023-02-15 12:03:12 +0300
committerSergei Petrunia <sergey@mariadb.com>2023-02-15 12:03:12 +0300
commit10a974adc9b250431cac44555c7aa9354e5840df (patch)
treeceb40f857edb82caf29a4f41f919fc9709f199f2 /scripts
parentf74bb51b30df03cf21aca040901089ed27821762 (diff)
parente8c7222ba3add52665e425740860325866b2aef5 (diff)
downloadmariadb-git-10a974adc9b250431cac44555c7aa9354e5840df.tar.gz
Merge 11.0-selectivity into 11.0
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/convert-debug-for-diff.sh23
-rw-r--r--scripts/sys_schema/CMakeLists.txt1
-rw-r--r--scripts/sys_schema/procedures/optimizer_switch.sql69
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 ;
+