Skip to content

Commit 9afb5a0

Browse files
philliptvoinikep
authored andcommitted
Log Thrift requests to Perf Schema
Summary: Add instrumentation to log thrift request from bypass rpc workflow to performance schema (specifically the "esms_by_all" table). The changes made include: - adding a sysvar to control pfs logging (this is enabled by default) - adding statement/digest instrumentation to Bypass RPC path - computing the query's digest if the sysvar is enabled (needed to log to performance schema) Differential Revision: D46087826 ------------------------------------------------------------------------------------- Do not define static variables in a header file (facebook#1409) Summary: Since they are used only once, move them to their respective use locations. This fixes a GCC compilation error: In file included from /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/rdb_nosql_digest.cc:1: /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:28:20: error: ‘myrocks::desc_tok’ defined but not used [-Werror=unused-variable] 28 | static LEX_CSTRING desc_tok{STRING_WITH_LEN("DESC")}; | ^~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:27:20: error: ‘myrocks::asc_tok’ defined but not used [-Werror=unused-variable] 27 | static LEX_CSTRING asc_tok{STRING_WITH_LEN("ASC")}; | ^~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:26:20: error: ‘myrocks::limit_tok’ defined but not used [-Werror=unused-variable] 26 | static LEX_CSTRING limit_tok{STRING_WITH_LEN("LIMIT")}; | ^~~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:25:20: error: ‘myrocks::by_tok’ defined but not used [-Werror=unused-variable] 25 | static LEX_CSTRING by_tok{STRING_WITH_LEN("BY")}; | ^~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:24:20: error: ‘myrocks::order_tok’ defined but not used [-Werror=unused-variable] 24 | static LEX_CSTRING order_tok{STRING_WITH_LEN("ORDER")}; | ^~~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:23:20: error: ‘myrocks::index_tok’ defined but not used [-Werror=unused-variable] 23 | static LEX_CSTRING index_tok{STRING_WITH_LEN("INDEX")}; | ^~~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:22:20: error: ‘myrocks::force_tok’ defined but not used [-Werror=unused-variable] 22 | static LEX_CSTRING force_tok{STRING_WITH_LEN("FORCE")}; | ^~~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:21:20: error: ‘myrocks::where_tok’ defined but not used [-Werror=unused-variable] 21 | static LEX_CSTRING where_tok{STRING_WITH_LEN("WHERE")}; | ^~~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:20:20: error: ‘myrocks::from_tok’ defined but not used [-Werror=unused-variable] 20 | static LEX_CSTRING from_tok{STRING_WITH_LEN("FROM")}; | ^~~~~~~~ /home/laurynas/vilniusdb/fb-mysql/storage/rocksdb/./rdb_nosql_digest.h:19:20: error: ‘myrocks::select_tok’ defined but not used [-Werror=unused-variable] 19 | static LEX_CSTRING select_tok{STRING_WITH_LEN("SELECT")}; | ^~~~~~~~~~ Pull Request resolved: facebook#1409 Differential Revision: D52259043 fbshipit-source-id: 42a062a ------------------------------------------------------------------------------------ [thrift] Fix bypass_pfs_logging test Summary: Fixed failing tests and other bugs that showed up while attempting to reproduce the issue - update digest from test results; this is likely from recording test results on an older iteration - set `thrift_server_bypass` to ON in thrift_server test initialization (this is needed after D52489280 sets this to `OFF` by default) - clean up state of `bypass_pfs_logging` sys var after tests Differential Revision: D52523295 fbshipit-source-id: eb5a1f8
1 parent f88f19c commit 9afb5a0

15 files changed

+654
-2
lines changed

mysql-test/r/mysqld--help-notwin.result

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,9 @@ The following options may be given as the first argument:
307307
--bulk-insert-buffer-size=#
308308
Size of tree cache used in bulk insert optimisation. Note
309309
that this is a limit per thread!
310+
--bypass-rpc-pfs-logging
311+
Enables logging in from Bypass RPC path to the
312+
events_statements_summary_by_all table
310313
--bypass-write-throttle-admin-check
311314
Bypass the check to avoid throttling write queries from
312315
admin users to prevent replication lag
@@ -3225,6 +3228,7 @@ binlog-transaction-dependency-tracking COMMIT_ORDER
32253228
binlog-trx-meta-data FALSE
32263229
block-encryption-mode aes-128-ecb
32273230
bulk-insert-buffer-size 8388608
3231+
bypass-rpc-pfs-logging FALSE
32283232
bypass-write-throttle-admin-check FALSE
32293233
caching-sha2-password-digest-rounds 5000
32303234
caching-sha2-password-private-key-path private_key.pem
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
SET @start_value = @@global.bypass_rpc_pfs_logging;
2+
SELECT @start_value;
3+
@start_value
4+
0
5+
SET @@global.bypass_rpc_pfs_logging = DEFAULT;
6+
SELECT @@global.bypass_rpc_pfs_logging = TRUE;
7+
@@global.bypass_rpc_pfs_logging = TRUE
8+
0
9+
SET @@global.bypass_rpc_pfs_logging = ON;
10+
SELECT @@global.bypass_rpc_pfs_logging;
11+
@@global.bypass_rpc_pfs_logging
12+
1
13+
SET @@global.bypass_rpc_pfs_logging = OFF;
14+
SELECT @@global.bypass_rpc_pfs_logging;
15+
@@global.bypass_rpc_pfs_logging
16+
0
17+
SET @@global.bypass_rpc_pfs_logging = 2;
18+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of '2'
19+
SET @@global.bypass_rpc_pfs_logging = -1;
20+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of '-1'
21+
SET @@global.bypass_rpc_pfs_logging = TRUEF;
22+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of 'TRUEF'
23+
SET @@global.bypass_rpc_pfs_logging = TRUE_F;
24+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of 'TRUE_F'
25+
SET @@global.bypass_rpc_pfs_logging = FALSE0;
26+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of 'FALSE0'
27+
SET @@global.bypass_rpc_pfs_logging = OON;
28+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of 'OON'
29+
SET @@global.bypass_rpc_pfs_logging = ONN;
30+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of 'ONN'
31+
SET @@global.bypass_rpc_pfs_logging = OOFF;
32+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of 'OOFF'
33+
SET @@global.bypass_rpc_pfs_logging = 0FF;
34+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of '0FF'
35+
SET @@global.bypass_rpc_pfs_logging = ' ';
36+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of ' '
37+
SET @@global.bypass_rpc_pfs_logging = " ";
38+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of ' '
39+
SET @@global.bypass_rpc_pfs_logging = '';
40+
ERROR 42000: Variable 'bypass_rpc_pfs_logging' can't be set to the value of ''
41+
SET @@session.bypass_rpc_pfs_logging = OFF;
42+
ERROR HY000: Variable 'bypass_rpc_pfs_logging' is a GLOBAL variable and should be set with SET GLOBAL
43+
SELECT @@session.bypass_rpc_pfs_logging;
44+
ERROR HY000: Variable 'bypass_rpc_pfs_logging' is a GLOBAL variable
45+
SELECT IF(@@global.bypass_rpc_pfs_logging, "ON", "OFF") = VARIABLE_VALUE
46+
FROM performance_schema.global_variables
47+
WHERE VARIABLE_NAME='bypass_rpc_pfs_logging';
48+
IF(@@global.bypass_rpc_pfs_logging, "ON", "OFF") = VARIABLE_VALUE
49+
1
50+
SET @@global.bypass_rpc_pfs_logging = 0;
51+
SELECT @@global.bypass_rpc_pfs_logging;
52+
@@global.bypass_rpc_pfs_logging
53+
0
54+
SET @@global.bypass_rpc_pfs_logging = 1;
55+
SELECT @@global.bypass_rpc_pfs_logging;
56+
@@global.bypass_rpc_pfs_logging
57+
1
58+
SET @@global.bypass_rpc_pfs_logging = TRUE;
59+
SELECT @@global.bypass_rpc_pfs_logging;
60+
@@global.bypass_rpc_pfs_logging
61+
1
62+
SET @@global.bypass_rpc_pfs_logging = FALSE;
63+
SELECT @@global.bypass_rpc_pfs_logging;
64+
@@global.bypass_rpc_pfs_logging
65+
0
66+
SET @@global.bypass_rpc_pfs_logging = ON;
67+
SELECT @@bypass_rpc_pfs_logging = @@global.bypass_rpc_pfs_logging;
68+
@@bypass_rpc_pfs_logging = @@global.bypass_rpc_pfs_logging
69+
1
70+
SET bypass_rpc_pfs_logging = ON;
71+
ERROR HY000: Variable 'bypass_rpc_pfs_logging' is a GLOBAL variable and should be set with SET GLOBAL
72+
SET local.bypass_rpc_pfs_logging = OFF;
73+
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'local.bypass_rpc_pfs_logging = OFF' at line 1
74+
SELECT local.bypass_rpc_pfs_logging;
75+
ERROR 42S02: Unknown table 'local' in field list
76+
SET global.bypass_rpc_pfs_logging = ON;
77+
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'global.bypass_rpc_pfs_logging = ON' at line 1
78+
SELECT global.bypass_rpc_pfs_logging;
79+
ERROR 42S02: Unknown table 'global' in field list
80+
SELECT bypass_rpc_pfs_logging = @@session.bypass_rpc_pfs_logging;
81+
ERROR HY000: Variable 'bypass_rpc_pfs_logging' is a GLOBAL variable
82+
SET @@global.bypass_rpc_pfs_logging = @start_value;
83+
SELECT @@global.bypass_rpc_pfs_logging;
84+
@@global.bypass_rpc_pfs_logging
85+
0
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
SET @start_value = @@global.bypass_rpc_pfs_logging;
2+
SELECT @start_value;
3+
4+
5+
SET @@global.bypass_rpc_pfs_logging = DEFAULT;
6+
SELECT @@global.bypass_rpc_pfs_logging = TRUE;
7+
8+
9+
SET @@global.bypass_rpc_pfs_logging = ON;
10+
SELECT @@global.bypass_rpc_pfs_logging;
11+
SET @@global.bypass_rpc_pfs_logging = OFF;
12+
SELECT @@global.bypass_rpc_pfs_logging;
13+
14+
--Error ER_WRONG_VALUE_FOR_VAR
15+
SET @@global.bypass_rpc_pfs_logging = 2;
16+
--Error ER_WRONG_VALUE_FOR_VAR
17+
SET @@global.bypass_rpc_pfs_logging = -1;
18+
--Error ER_WRONG_VALUE_FOR_VAR
19+
SET @@global.bypass_rpc_pfs_logging = TRUEF;
20+
--Error ER_WRONG_VALUE_FOR_VAR
21+
SET @@global.bypass_rpc_pfs_logging = TRUE_F;
22+
--Error ER_WRONG_VALUE_FOR_VAR
23+
SET @@global.bypass_rpc_pfs_logging = FALSE0;
24+
--Error ER_WRONG_VALUE_FOR_VAR
25+
SET @@global.bypass_rpc_pfs_logging = OON;
26+
--Error ER_WRONG_VALUE_FOR_VAR
27+
SET @@global.bypass_rpc_pfs_logging = ONN;
28+
--Error ER_WRONG_VALUE_FOR_VAR
29+
SET @@global.bypass_rpc_pfs_logging = OOFF;
30+
--Error ER_WRONG_VALUE_FOR_VAR
31+
SET @@global.bypass_rpc_pfs_logging = 0FF;
32+
--Error ER_WRONG_VALUE_FOR_VAR
33+
SET @@global.bypass_rpc_pfs_logging = ' ';
34+
--Error ER_WRONG_VALUE_FOR_VAR
35+
SET @@global.bypass_rpc_pfs_logging = " ";
36+
--Error ER_WRONG_VALUE_FOR_VAR
37+
SET @@global.bypass_rpc_pfs_logging = '';
38+
39+
40+
--Error ER_GLOBAL_VARIABLE
41+
SET @@session.bypass_rpc_pfs_logging = OFF;
42+
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
43+
SELECT @@session.bypass_rpc_pfs_logging;
44+
45+
46+
SELECT IF(@@global.bypass_rpc_pfs_logging, "ON", "OFF") = VARIABLE_VALUE
47+
FROM performance_schema.global_variables
48+
WHERE VARIABLE_NAME='bypass_rpc_pfs_logging';
49+
50+
51+
SET @@global.bypass_rpc_pfs_logging = 0;
52+
SELECT @@global.bypass_rpc_pfs_logging;
53+
SET @@global.bypass_rpc_pfs_logging = 1;
54+
SELECT @@global.bypass_rpc_pfs_logging;
55+
56+
SET @@global.bypass_rpc_pfs_logging = TRUE;
57+
SELECT @@global.bypass_rpc_pfs_logging;
58+
SET @@global.bypass_rpc_pfs_logging = FALSE;
59+
SELECT @@global.bypass_rpc_pfs_logging;
60+
61+
SET @@global.bypass_rpc_pfs_logging = ON;
62+
SELECT @@bypass_rpc_pfs_logging = @@global.bypass_rpc_pfs_logging;
63+
64+
--Error ER_GLOBAL_VARIABLE
65+
SET bypass_rpc_pfs_logging = ON;
66+
--Error ER_PARSE_ERROR
67+
SET local.bypass_rpc_pfs_logging = OFF;
68+
--Error ER_UNKNOWN_TABLE
69+
SELECT local.bypass_rpc_pfs_logging;
70+
--Error ER_PARSE_ERROR
71+
SET global.bypass_rpc_pfs_logging = ON;
72+
--Error ER_UNKNOWN_TABLE
73+
SELECT global.bypass_rpc_pfs_logging;
74+
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
75+
SELECT bypass_rpc_pfs_logging = @@session.bypass_rpc_pfs_logging;
76+
77+
SET @@global.bypass_rpc_pfs_logging = @start_value;
78+
SELECT @@global.bypass_rpc_pfs_logging;

mysql-test/suite/thrift_server/include/init_thrift_server_plugin.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ if (!$plugin_installed)
1111
set global thrift_server_vlog=1;
1212
set global thrift_server_on=on;
1313
SET GLOBAL THRIFT_SERVER_SQUIFT=ON;
14+
SET GLOBAL THRIFT_SERVER_BYPASS=ON;
1415
}
1516

1617
disable_warnings;
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
CREATE TABLE t1(c1 BIGINT NOT NULL, c2 VARCHAR(64), c3 int NOT NULL, PRIMARY KEY (c1));
2+
insert into t1 values (1, 'v1', 2), (2, 'v2', 3), (3, null, 4);
3+
SELECT @@bypass_rpc_pfs_logging INTO @save_bypass_rpc_pfs_logging;
4+
TRUNCATE TABLE performance_schema.events_statements_summary_by_all;
5+
6+
TEST CASE performance_schema_esms_by_all=off. bypass_rpc_pfs_logging=off. No data in events_statements_summary_by_all
7+
8+
set global performance_schema_esms_by_all = off;
9+
set global bypass_rpc_pfs_logging = off;
10+
select @@performance_schema_esms_by_all;
11+
@@performance_schema_esms_by_all
12+
0
13+
select @@bypass_rpc_pfs_logging;
14+
@@bypass_rpc_pfs_logging
15+
0
16+
SET GLOBAL THRIFT_SERVER_TESTER_INPUT='bypass: {"db_name":"test","table_name":"t1","columns":["c1", "c2"],"where":[{"column":"c3","op":2,"value":{"signedIntVal":2}}]}';
17+
SELECT SEQ_NUMBER, TYPE, VALUE FROM THRIFT_SERVER_PLUGIN_OUTPUT ORDER BY SEQ_NUMBER;
18+
SEQ_NUMBER TYPE VALUE
19+
0 header [{"type":2,"name":"c1"}, {"type":4,"name":"c2"}]
20+
1 row [{"signedIntVal":2}, {"stringVal":"v2"}]
21+
2 row [{"signedIntVal":3}, {"isNull":true}]
22+
3 hlcTsLowerBound 0
23+
select schema_name, digest, user, client_id, plan_id, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_all where query_sample_text like '%bypass rpc%';
24+
schema_name digest user client_id plan_id count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
25+
select schema_name, digest, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_digest where query_sample_text like '%bypass rpc%';
26+
schema_name digest count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
27+
test 7ccb84550cd3166e3616468625636da4 1 0 0 0
28+
TRUNCATE TABLE THRIFT_SERVER_PLUGIN_OUTPUT;
29+
30+
TEST CASE performance_schema_esms_by_all=off. bypass_rpc_pfs_logging=on. No data in events_statements_summary_by_all since
31+
primary switch 'performance_schema.esms_by_all' is turned off.
32+
echo
33+
set global performance_schema_esms_by_all = off;
34+
set global bypass_rpc_pfs_logging = on;
35+
select @@performance_schema_esms_by_all;
36+
@@performance_schema_esms_by_all
37+
0
38+
select @@bypass_rpc_pfs_logging;
39+
@@bypass_rpc_pfs_logging
40+
1
41+
SET GLOBAL THRIFT_SERVER_TESTER_INPUT='bypass: {"db_name":"test","table_name":"t1","columns":["c1", "c2"],"where":[{"column":"c3","op":2,"value":{"signedIntVal":2}}]}';
42+
SELECT SEQ_NUMBER, TYPE, VALUE FROM THRIFT_SERVER_PLUGIN_OUTPUT ORDER BY SEQ_NUMBER;
43+
SEQ_NUMBER TYPE VALUE
44+
0 header [{"type":2,"name":"c1"}, {"type":4,"name":"c2"}]
45+
1 row [{"signedIntVal":2}, {"stringVal":"v2"}]
46+
2 row [{"signedIntVal":3}, {"isNull":true}]
47+
3 hlcTsLowerBound 0
48+
select schema_name, digest, client_id, plan_id, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_all where query_sample_text like '%bypass rpc%';
49+
schema_name digest client_id plan_id count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
50+
select schema_name, digest, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_digest where query_sample_text like '%bypass rpc%';
51+
schema_name digest count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
52+
test e8f3d908aa6ac78634d186bb58579527 1 0 0 0
53+
TRUNCATE TABLE THRIFT_SERVER_PLUGIN_OUTPUT;
54+
55+
TEST CASE performance_schema_esms_by_all=on. bypass_rpc_pfs_logging=off. Data will be stored in sql_statistics, but not bypass_rpc queries
56+
57+
set global performance_schema_esms_by_all = on;
58+
set global bypass_rpc_pfs_logging = off;
59+
select @@performance_schema_esms_by_all;
60+
@@performance_schema_esms_by_all
61+
1
62+
select @@bypass_rpc_pfs_logging;
63+
@@bypass_rpc_pfs_logging
64+
0
65+
SET GLOBAL THRIFT_SERVER_TESTER_INPUT='bypass: {"db_name":"test","table_name":"t1","columns":["c1", "c2"],"where":[{"column":"c3","op":2,"value":{"signedIntVal":2}}]}';
66+
SELECT SEQ_NUMBER, TYPE, VALUE FROM THRIFT_SERVER_PLUGIN_OUTPUT ORDER BY SEQ_NUMBER;
67+
SEQ_NUMBER TYPE VALUE
68+
0 header [{"type":2,"name":"c1"}, {"type":4,"name":"c2"}]
69+
1 row [{"signedIntVal":2}, {"stringVal":"v2"}]
70+
2 row [{"signedIntVal":3}, {"isNull":true}]
71+
3 hlcTsLowerBound 0
72+
select schema_name, digest, client_id, plan_id, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_all where query_sample_text like '%bypass rpc%';
73+
schema_name digest client_id plan_id count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
74+
select schema_name, digest, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_digest where query_sample_text like '%bypass rpc%';
75+
schema_name digest count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
76+
TRUNCATE TABLE THRIFT_SERVER_PLUGIN_OUTPUT;
77+
78+
TEST CASE performance_schema_esms_by_all=on. bypass_rpc_pfs_logging=on. Data will be stored in sql_statistics
79+
80+
set global performance_schema_esms_by_all = on;
81+
set global bypass_rpc_pfs_logging = on;
82+
select @@performance_schema_esms_by_all;
83+
@@performance_schema_esms_by_all
84+
1
85+
select @@bypass_rpc_pfs_logging;
86+
@@bypass_rpc_pfs_logging
87+
1
88+
SET GLOBAL THRIFT_SERVER_TESTER_INPUT='bypass: {"db_name":"test","table_name":"t1","columns":["c1", "c2"],"where":[{"column":"c3","op":2,"value":{"signedIntVal":2}}]}';
89+
SELECT SEQ_NUMBER, TYPE, VALUE FROM THRIFT_SERVER_PLUGIN_OUTPUT ORDER BY SEQ_NUMBER;
90+
SEQ_NUMBER TYPE VALUE
91+
0 header [{"type":2,"name":"c1"}, {"type":4,"name":"c2"}]
92+
1 row [{"signedIntVal":2}, {"stringVal":"v2"}]
93+
2 row [{"signedIntVal":3}, {"isNull":true}]
94+
3 hlcTsLowerBound 0
95+
TRUNCATE TABLE THRIFT_SERVER_PLUGIN_OUTPUT;
96+
SET GLOBAL THRIFT_SERVER_TESTER_INPUT='bypass: {"db_name":"test","table_name":"t1","columns":["c1", "c2"],"where":[{"column":"c3","op":2,"value":{"signedIntVal":3}}]}';
97+
SELECT SEQ_NUMBER, TYPE, VALUE FROM THRIFT_SERVER_PLUGIN_OUTPUT ORDER BY SEQ_NUMBER;
98+
SEQ_NUMBER TYPE VALUE
99+
0 header [{"type":2,"name":"c1"}, {"type":5,"name":"c2"}]
100+
1 row [{"signedIntVal":3}, {"isNull":true}]
101+
2 hlcTsLowerBound 0
102+
TRUNCATE TABLE THRIFT_SERVER_PLUGIN_OUTPUT;
103+
SET GLOBAL THRIFT_SERVER_TESTER_INPUT='bypass: {"db_name":"test","table_name":"t1","columns":["c1", "c2"],"where":[{"column":"c3","op":2,"value":{"signedIntVal":2}},{"column":"c3","op":1,"value":{"signedIntVal":4}}]}';
104+
SELECT SEQ_NUMBER, TYPE, VALUE FROM THRIFT_SERVER_PLUGIN_OUTPUT ORDER BY SEQ_NUMBER;
105+
SEQ_NUMBER TYPE VALUE
106+
0 header [{"type":2,"name":"c1"}, {"type":4,"name":"c2"}]
107+
1 row [{"signedIntVal":2}, {"stringVal":"v2"}]
108+
2 hlcTsLowerBound 0
109+
TRUNCATE TABLE THRIFT_SERVER_PLUGIN_OUTPUT;
110+
select schema_name, digest, client_id, plan_id, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_all where query_sample_text like '%bypass rpc%';
111+
schema_name digest client_id plan_id count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
112+
test 5c3a390111f66b62dee3b0fca221c091 00000000000000000000000000000000 00000000000000000000000000000000 2 0 0 0
113+
test aac67466d0e9c28fa3daff45bf1c4d20 00000000000000000000000000000000 00000000000000000000000000000000 1 0 0 0
114+
select schema_name, digest, count_star, sum_rows_deleted, sum_rows_inserted, sum_rows_updated from performance_schema.events_statements_summary_by_digest where query_sample_text like '%bypass rpc%';
115+
schema_name digest count_star sum_rows_deleted sum_rows_inserted sum_rows_updated
116+
Cleanup
117+
set global performance_schema_esms_by_all = DEFAULT;
118+
SET GLOBAL bypass_rpc_pfs_logging = @save_bypass_rpc_pfs_logging;
119+
drop table t1;

0 commit comments

Comments
 (0)