From 3f619478f796eddbba6e39502fe941b285dd97b1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 20:00:34 +0200 Subject: Adding upstream version 1:10.11.6. Signed-off-by: Daniel Baumann --- .../suite/perfschema/include/socket_check1.inc | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 mysql-test/suite/perfschema/include/socket_check1.inc (limited to 'mysql-test/suite/perfschema/include/socket_check1.inc') diff --git a/mysql-test/suite/perfschema/include/socket_check1.inc b/mysql-test/suite/perfschema/include/socket_check1.inc new file mode 100644 index 00000000..4f65e7d0 --- /dev/null +++ b/mysql-test/suite/perfschema/include/socket_check1.inc @@ -0,0 +1,129 @@ +# Example how to use this auxiliary script +#----------------------------------------- +# +### The table/tables used in $part must have the right content. +### $title_prefix is used for the generation of titles +# +# let $title_prefix= 4.3; +### $check_num is used for the generation of titles and gets incremented after +### every call of the current script. +# let $check_num= 1; +### $diff_column_list is used for the generation of error information and valid for +### every sub test. +# let $diff_column_list= +# t2.COUNT_READ - t1.COUNT_READ AS D_COUNT_READ, +# t2.COUNT_READ AS S2_COUNT_READ, +# t1.COUNT_READ AS S1_COUNT_READ, +# t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ AS D_SUM_NUMBER_OF_BYTES_READ, +# t2.SUM_NUMBER_OF_BYTES_READ AS S2_SUM_NUMBER_OF_BYTES_READ, +# t1.SUM_NUMBER_OF_BYTES_READ AS S1_SUM_NUMBER_OF_BYTES_READ, +# t2.COUNT_WRITE - t1.COUNT_WRITE AS D_COUNT_WRITE, +# t2.COUNT_WRITE AS S2_COUNT_WRITE, +# t1.COUNT_WRITE AS S1_COUNT_WRITE, +# t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE AS D_UM_NUMBER_OF_BYTES_WRITE, +# t2.SUM_NUMBER_OF_BYTES_WRITE AS S2_SUM_NUMBER_OF_BYTES_WRITE, +# t1.SUM_NUMBER_OF_BYTES_WRITE AS S1_SUM_NUMBER_OF_BYTES_WRITE, +# t2.COUNT_MISC - t1.COUNT_MISC AS D_COUNT_MISC, +# t2.COUNT_MISC AS S2_COUNT_MISC, +# t1.COUNT_MISC AS S1_COUNT_MISC; +### $part is used for the generation of "check" statements + error information +### and valid for every sub test. +# let $part= +# FROM mysqltest.socket_summary_by_instance_detail t1 +# JOIN mysqltest.socket_summary_by_instance_detail t2 +# USING (EVENT_NAME, OBJECT_INSTANCE_BEGIN, run) +# WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin +# AND EVENT_NAME LIKE ('%client_connection') +# AND run = 1; +# +# --echo # $title_prefix Check the differences caused by SQL statement +# +# let stmt1= SELECT col2 FROM does_not_exist; +# let stmt2= SELECT col2 FROM does_not_exist WHERE col1 = 0; +### $msg is used to generate some explanation of what we compare. +# let $msg= +# # One statement is longer than the other. +# # Both statements fail with the same error message (table does not exist); +# let $my_rules= +# t2.COUNT_READ - t1.COUNT_READ = 0 AND +# t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND +# t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND +# t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE = 0 AND +# t2.COUNT_MISC - t1.COUNT_MISC = 0; +# --source ../include/socket_check1.inc +# +# let stmt1= .... +# let stmt2= .... +# let $my_rules= ... +# --source ../include/socket_check1.inc +# +# ... +# + +--echo # $title_prefix.$check_num Compare impact of statements +--echo # $stmt2 +--echo # $stmt1 +--echo # $msg + +# Enable this when extending the checks for SQL statements. +if(0) +{ + if (`SELECT CONCAT("$stmt1","$stmt2","$my_rules") LIKE '%_not_set%'`) + { + --echo # INTERNAL ERROR: + --echo # At least one of the variables has no value (is like '%_not_set') + --echo # stmt1 : $stmt1 + --echo # stmt2 : $stmt2 + --echo # my_rules : $my_rules + --echo # Sorry, have to abort + exit; + } +} + +if(`SELECT NOT ( $my_rules ) + $part + AND t2.statement = '$stmt2' AND t1.statement = '$stmt1'`) +{ + --enable_query_log + --enable_result_log + --echo # The compared statistics looks suspicious + --echo # We expect + --echo $my_rules + --echo + --horizontal_results + eval + SELECT $my_rules AS Expect_1 + $part + AND t2.statement = '$stmt2' AND t1.statement = '$stmt1'; + --echo + --vertical_results + eval + SELECT $diff_column_list + $part + AND t1.statement = '$stmt1' AND t2.statement = '$stmt2'; + --echo + --horizontal_results + + eval + SELECT + LPAD(COUNT_READ, 8, ' ') AS CNT_READ, + LPAD(SUM_NUMBER_OF_BYTES_READ, 10,' ') AS BYTES_READ, + LPAD(COUNT_WRITE,9, ' ') AS CNT_WRITE, + LPAD(SUM_NUMBER_OF_BYTES_WRITE, 11,' ') AS BYTES_WRITE, + LPAD(COUNT_MISC, 8, ' ') AS CNT_MISC, statement + FROM mysqltest.socket_summary_by_instance_detail + WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin + AND EVENT_NAME LIKE ('%client_connection') + AND run = 1 + AND statement IN('$stmt2','$stmt1'); + let $print_details= 1; +} +# Initialize all variables which depend on the statements to be checked. +# This prevents that we run with wrong data. +let $stmt1= stmt1_not_set; +let $stmt2= stmt2_not_set; +let $my_rules= my_rules_not_set; +let $msg= msg_not_set; +inc $check_num; + + -- cgit v1.2.3