1
0
mirror of https://github.com/MariaDB/server.git synced 2025-04-18 21:44:20 +03:00

MDEV-19629 post-merge fixes

* it isn't "pfs" function, don't call it Item_func_pfs,
  don't use item_pfsfunc.*
* tests don't depend on performance schema, put in the main suite
* inherit from Item_str_ascii_func
* use connection collation, not utf8mb3_general_ci
* set result length in fix_length_and_dec
* do not set maybe_null
* use my_snprintf() where possible
* don't set m_value.ptr on every invocation
* update sys schema to use the format_pico_time()
* len must be size_t (compilation error on Windows)
* the correct function name for double->double is fabs()
* drop volatile hack
This commit is contained in:
Sergei Golubchik 2023-03-27 18:50:49 +02:00
parent d9808f79de
commit c2b6916393
86 changed files with 347 additions and 430 deletions

View File

@ -64,7 +64,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
../sql/item.cc ../sql/item_create.cc ../sql/item_func.cc
../sql/item_geofunc.cc ../sql/item_row.cc ../sql/item_strfunc.cc
../sql/item_subselect.cc ../sql/item_sum.cc ../sql/item_timefunc.cc
../sql/item_xmlfunc.cc ../sql/item_jsonfunc.cc ../sql/item_pfsfunc.cc
../sql/item_xmlfunc.cc ../sql/item_jsonfunc.cc
../sql/key.cc ../sql/lock.cc ../sql/log.cc
../sql/log_event.cc ../sql/log_event_server.cc
../sql/mf_iocache.cc ../sql/my_decimal.cc

View File

@ -2,11 +2,11 @@ DESC sys.host_summary;
Field Type Null Key Default Extra
host varchar(255) YES NULL
statements decimal(64,0) YES NULL
statement_latency text YES NULL
statement_avg_latency text YES NULL
statement_latency varchar(12) YES NULL
statement_avg_latency varchar(12) YES NULL
table_scans decimal(65,0) YES NULL
file_ios decimal(64,0) YES NULL
file_io_latency text YES NULL
file_io_latency varchar(12) YES NULL
current_connections decimal(41,0) YES NULL
total_connections decimal(41,0) YES NULL
unique_users bigint(21) NO 0

View File

@ -2,7 +2,7 @@ DESC sys.host_summary_by_file_io;
Field Type Null Key Default Extra
host varchar(255) YES NULL
ios decimal(42,0) YES NULL
io_latency text YES NULL
io_latency varchar(12) YES NULL
SELECT * FROM sys.host_summary_by_file_io;
DESC sys.x$host_summary_by_file_io;
Field Type Null Key Default Extra

View File

@ -3,8 +3,8 @@ Field Type Null Key Default Extra
host varchar(255) YES NULL
event_name varchar(128) NO NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.host_summary_by_file_io_type;
DESC sys.x$host_summary_by_file_io_type;
Field Type Null Key Default Extra

View File

@ -3,8 +3,8 @@ Field Type Null Key Default Extra
host varchar(255) YES NULL
event_name varchar(128) NO NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
avg_latency text YES NULL
total_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
SELECT * FROM sys.host_summary_by_stages;
DESC sys.x$host_summary_by_stages;
Field Type Null Key Default Extra

View File

@ -2,9 +2,9 @@ DESC sys.host_summary_by_statement_latency;
Field Type Null Key Default Extra
host varchar(255) YES NULL
total decimal(42,0) YES NULL
total_latency text YES NULL
max_latency text YES NULL
lock_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
lock_latency varchar(12) YES NULL
rows_sent decimal(42,0) YES NULL
rows_examined decimal(42,0) YES NULL
rows_affected decimal(42,0) YES NULL

View File

@ -3,9 +3,9 @@ Field Type Null Key Default Extra
host varchar(255) YES NULL
statement varchar(128) YES NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
max_latency text YES NULL
lock_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
lock_latency varchar(12) YES NULL
rows_sent bigint(20) unsigned NO NULL
rows_examined bigint(20) unsigned NO NULL
rows_affected bigint(20) unsigned NO NULL

View File

@ -2,10 +2,10 @@ DESC sys.io_by_thread_by_latency;
Field Type Null Key Default Extra
user varchar(384) YES NULL
total decimal(42,0) YES NULL
total_latency text YES NULL
min_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
min_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
thread_id bigint(20) unsigned NO NULL
processlist_id bigint(20) unsigned YES NULL
SELECT * FROM sys.io_by_thread_by_latency;

View File

@ -2,13 +2,13 @@ DESC sys.io_global_by_file_by_latency;
Field Type Null Key Default Extra
file varchar(512) YES NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
total_latency varchar(12) YES NULL
count_read bigint(20) unsigned NO NULL
read_latency text YES NULL
read_latency varchar(12) YES NULL
count_write bigint(20) unsigned NO NULL
write_latency text YES NULL
write_latency varchar(12) YES NULL
count_misc bigint(20) unsigned NO NULL
misc_latency text YES NULL
misc_latency varchar(12) YES NULL
SELECT * FROM sys.io_global_by_file_by_latency;
DESC sys.x$io_global_by_file_by_latency;
Field Type Null Key Default Extra

View File

@ -2,10 +2,10 @@ DESC sys.io_global_by_wait_by_bytes;
Field Type Null Key Default Extra
event_name varchar(128) YES NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
min_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
min_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
count_read bigint(20) unsigned NO NULL
total_read text YES NULL
avg_read text YES NULL

View File

@ -2,12 +2,12 @@ DESC sys.io_global_by_wait_by_latency;
Field Type Null Key Default Extra
event_name varchar(128) YES NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
read_latency text YES NULL
write_latency text YES NULL
misc_latency text YES NULL
total_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
read_latency varchar(12) YES NULL
write_latency varchar(12) YES NULL
misc_latency varchar(12) YES NULL
count_read bigint(20) unsigned NO NULL
total_read text YES NULL
avg_read text YES NULL

View File

@ -2,7 +2,7 @@ DESC sys.latest_file_io;
Field Type Null Key Default Extra
thread varchar(214) YES NULL
file varchar(512) YES NULL
latency text YES NULL
latency varchar(12) YES NULL
operation varchar(32) NO NULL
requested text YES NULL
SELECT * FROM sys.latest_file_io;

View File

@ -8,9 +8,9 @@ command varchar(16) YES NULL
state varchar(64) YES NULL
time bigint(20) YES NULL
current_statement longtext YES NULL
statement_latency mediumtext YES NULL
statement_latency varchar(12) YES NULL
progress decimal(26,2) YES NULL
lock_latency text YES NULL
lock_latency varchar(12) YES NULL
rows_examined bigint(20) unsigned YES NULL
rows_sent bigint(20) unsigned YES NULL
rows_affected bigint(20) unsigned YES NULL
@ -18,12 +18,12 @@ tmp_tables bigint(20) unsigned YES NULL
tmp_disk_tables bigint(20) unsigned YES NULL
full_scan varchar(3) YES NULL
last_statement longtext YES NULL
last_statement_latency mediumtext YES NULL
last_statement_latency varchar(12) YES NULL
current_memory text YES NULL
last_wait varchar(128) YES NULL
last_wait_latency mediumtext YES NULL
last_wait_latency varchar(13) YES NULL
source varchar(64) YES NULL
trx_latency text YES NULL
trx_latency varchar(12) YES NULL
trx_state enum('ACTIVE','COMMITTED','ROLLED BACK') YES NULL
trx_autocommit enum('YES','NO') YES NULL
pid varchar(1024) YES NULL

View File

@ -4,13 +4,13 @@ table_schema varchar(64) YES NULL
table_name varchar(64) YES NULL
index_name varchar(64) YES NULL
rows_selected bigint(20) unsigned NO NULL
select_latency text YES NULL
select_latency varchar(12) YES NULL
rows_inserted bigint(20) unsigned NO NULL
insert_latency text YES NULL
insert_latency varchar(12) YES NULL
rows_updated bigint(20) unsigned NO NULL
update_latency text YES NULL
update_latency varchar(12) YES NULL
rows_deleted bigint(20) unsigned NO NULL
delete_latency text YES NULL
delete_latency varchar(12) YES NULL
SELECT * FROM sys.schema_index_statistics;
DESC sys.x$schema_index_statistics;
Field Type Null Key Default Extra

View File

@ -2,23 +2,23 @@ DESC sys.schema_table_statistics;
Field Type Null Key Default Extra
table_schema varchar(64) YES NULL
table_name varchar(64) YES NULL
total_latency text YES NULL
total_latency varchar(12) YES NULL
rows_fetched bigint(20) unsigned NO NULL
fetch_latency text YES NULL
fetch_latency varchar(12) YES NULL
rows_inserted bigint(20) unsigned NO NULL
insert_latency text YES NULL
insert_latency varchar(12) YES NULL
rows_updated bigint(20) unsigned NO NULL
update_latency text YES NULL
update_latency varchar(12) YES NULL
rows_deleted bigint(20) unsigned NO NULL
delete_latency text YES NULL
delete_latency varchar(12) YES NULL
io_read_requests decimal(42,0) YES NULL
io_read text YES NULL
io_read_latency text YES NULL
io_read_latency varchar(12) YES NULL
io_write_requests decimal(42,0) YES NULL
io_write text YES NULL
io_write_latency text YES NULL
io_write_latency varchar(12) YES NULL
io_misc_requests decimal(42,0) YES NULL
io_misc_latency text YES NULL
io_misc_latency varchar(12) YES NULL
SELECT * FROM sys.schema_table_statistics;
DESC sys.x$schema_table_statistics;
Field Type Null Key Default Extra

View File

@ -3,21 +3,21 @@ Field Type Null Key Default Extra
table_schema varchar(64) YES NULL
table_name varchar(64) YES NULL
rows_fetched bigint(20) unsigned NO NULL
fetch_latency text YES NULL
fetch_latency varchar(12) YES NULL
rows_inserted bigint(20) unsigned NO NULL
insert_latency text YES NULL
insert_latency varchar(12) YES NULL
rows_updated bigint(20) unsigned NO NULL
update_latency text YES NULL
update_latency varchar(12) YES NULL
rows_deleted bigint(20) unsigned NO NULL
delete_latency text YES NULL
delete_latency varchar(12) YES NULL
io_read_requests decimal(42,0) YES NULL
io_read text YES NULL
io_read_latency text YES NULL
io_read_latency varchar(12) YES NULL
io_write_requests decimal(42,0) YES NULL
io_write text YES NULL
io_write_latency text YES NULL
io_write_latency varchar(12) YES NULL
io_misc_requests decimal(42,0) YES NULL
io_misc_latency text YES NULL
io_misc_latency varchar(12) YES NULL
innodb_buffer_allocated text YES NULL
innodb_buffer_data text YES NULL
innodb_buffer_free text YES NULL

View File

@ -3,7 +3,7 @@ Field Type Null Key Default Extra
object_schema varchar(64) YES NULL
object_name varchar(64) YES NULL
rows_full_scanned bigint(20) unsigned NO NULL
latency text YES NULL
latency varchar(12) YES NULL
SELECT * FROM sys.schema_tables_with_full_table_scans;
DESC sys.x$schema_tables_with_full_table_scans;
Field Type Null Key Default Extra

View File

@ -8,9 +8,9 @@ command varchar(16) YES NULL
state varchar(64) YES NULL
time bigint(20) YES NULL
current_statement longtext YES NULL
statement_latency mediumtext YES NULL
statement_latency varchar(12) YES NULL
progress decimal(26,2) YES NULL
lock_latency text YES NULL
lock_latency varchar(12) YES NULL
rows_examined bigint(20) unsigned YES NULL
rows_sent bigint(20) unsigned YES NULL
rows_affected bigint(20) unsigned YES NULL
@ -18,12 +18,12 @@ tmp_tables bigint(20) unsigned YES NULL
tmp_disk_tables bigint(20) unsigned YES NULL
full_scan varchar(3) YES NULL
last_statement longtext YES NULL
last_statement_latency mediumtext YES NULL
last_statement_latency varchar(12) YES NULL
current_memory text YES NULL
last_wait varchar(128) YES NULL
last_wait_latency mediumtext YES NULL
last_wait_latency varchar(13) YES NULL
source varchar(64) YES NULL
trx_latency text YES NULL
trx_latency varchar(12) YES NULL
trx_state enum('ACTIVE','COMMITTED','ROLLED BACK') YES NULL
trx_autocommit enum('YES','NO') YES NULL
pid varchar(1024) YES NULL

View File

@ -6,10 +6,10 @@ full_scan varchar(1) NO
exec_count bigint(20) unsigned NO NULL
err_count bigint(20) unsigned NO NULL
warn_count bigint(20) unsigned NO NULL
total_latency text YES NULL
max_latency text YES NULL
avg_latency text YES NULL
lock_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
lock_latency varchar(12) YES NULL
rows_sent bigint(20) unsigned NO NULL
rows_sent_avg decimal(21,0) NO 0
rows_examined bigint(20) unsigned NO NULL

View File

@ -3,7 +3,7 @@ Field Type Null Key Default Extra
query longtext YES NULL
db varchar(64) YES NULL
exec_count bigint(20) unsigned NO NULL
total_latency text YES NULL
total_latency varchar(12) YES NULL
no_index_used_count bigint(20) unsigned NO NULL
no_good_index_used_count bigint(20) unsigned NO NULL
no_index_used_pct decimal(24,0) NO 0

View File

@ -6,9 +6,9 @@ full_scan varchar(1) NO
exec_count bigint(20) unsigned NO NULL
err_count bigint(20) unsigned NO NULL
warn_count bigint(20) unsigned NO NULL
total_latency text YES NULL
max_latency text YES NULL
avg_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
rows_sent bigint(20) unsigned NO NULL
rows_sent_avg decimal(21,0) NO 0
rows_examined bigint(20) unsigned NO NULL

View File

@ -3,7 +3,7 @@ Field Type Null Key Default Extra
query longtext YES NULL
db varchar(64) YES NULL
exec_count bigint(20) unsigned NO NULL
total_latency text YES NULL
total_latency varchar(12) YES NULL
sort_merge_passes bigint(20) unsigned NO NULL
avg_sort_merges decimal(21,0) NO 0
sorts_using_scans bigint(20) unsigned NO NULL

View File

@ -3,7 +3,7 @@ Field Type Null Key Default Extra
query longtext YES NULL
db varchar(64) YES NULL
exec_count bigint(20) unsigned NO NULL
total_latency text YES NULL
total_latency varchar(12) YES NULL
memory_tmp_tables bigint(20) unsigned NO NULL
disk_tmp_tables bigint(20) unsigned NO NULL
avg_tmp_tables_per_query decimal(21,0) NO 0

View File

@ -2,11 +2,11 @@ DESC sys.user_summary;
Field Type Null Key Default Extra
user varchar(128) YES NULL
statements decimal(64,0) YES NULL
statement_latency text YES NULL
statement_avg_latency text YES NULL
statement_latency varchar(12) YES NULL
statement_avg_latency varchar(12) YES NULL
table_scans decimal(65,0) YES NULL
file_ios decimal(64,0) YES NULL
file_io_latency text YES NULL
file_io_latency varchar(12) YES NULL
current_connections decimal(41,0) YES NULL
total_connections decimal(41,0) YES NULL
unique_hosts bigint(21) NO 0

View File

@ -2,7 +2,7 @@ DESC sys.user_summary_by_file_io;
Field Type Null Key Default Extra
user varchar(128) YES NULL
ios decimal(42,0) YES NULL
io_latency text YES NULL
io_latency varchar(12) YES NULL
SELECT * FROM sys.user_summary_by_file_io;
DESC sys.x$user_summary_by_file_io;
Field Type Null Key Default Extra

View File

@ -3,8 +3,8 @@ Field Type Null Key Default Extra
user varchar(128) YES NULL
event_name varchar(128) NO NULL
total bigint(20) unsigned NO NULL
latency text YES NULL
max_latency text YES NULL
latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.user_summary_by_file_io_type;
DESC sys.x$user_summary_by_file_io_type;
Field Type Null Key Default Extra

View File

@ -3,8 +3,8 @@ Field Type Null Key Default Extra
user varchar(128) YES NULL
event_name varchar(128) NO NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
avg_latency text YES NULL
total_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
SELECT * FROM sys.user_summary_by_stages;
DESC sys.x$user_summary_by_stages;
Field Type Null Key Default Extra

View File

@ -2,9 +2,9 @@ DESC sys.user_summary_by_statement_latency;
Field Type Null Key Default Extra
user varchar(128) YES NULL
total decimal(42,0) YES NULL
total_latency text YES NULL
max_latency text YES NULL
lock_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
lock_latency varchar(12) YES NULL
rows_sent decimal(42,0) YES NULL
rows_examined decimal(42,0) YES NULL
rows_affected decimal(42,0) YES NULL

View File

@ -3,9 +3,9 @@ Field Type Null Key Default Extra
user varchar(128) YES NULL
statement varchar(128) YES NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
max_latency text YES NULL
lock_latency text YES NULL
total_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
lock_latency varchar(12) YES NULL
rows_sent bigint(20) unsigned NO NULL
rows_examined bigint(20) unsigned NO NULL
rows_affected bigint(20) unsigned NO NULL

View File

@ -2,10 +2,10 @@ DESC sys.wait_classes_global_by_avg_latency;
Field Type Null Key Default Extra
event_class varchar(128) YES NULL
total decimal(42,0) YES NULL
total_latency text YES NULL
min_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
min_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.wait_classes_global_by_avg_latency;
DESC sys.x$wait_classes_global_by_avg_latency;
Field Type Null Key Default Extra

View File

@ -2,10 +2,10 @@ DESC sys.wait_classes_global_by_latency;
Field Type Null Key Default Extra
event_class varchar(128) YES NULL
total decimal(42,0) YES NULL
total_latency text YES NULL
min_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
min_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.wait_classes_global_by_latency;
DESC sys.x$wait_classes_global_by_latency;
Field Type Null Key Default Extra

View File

@ -3,9 +3,9 @@ Field Type Null Key Default Extra
host varchar(255) YES NULL
event varchar(128) NO NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.waits_by_host_by_latency;
DESC sys.x$waits_by_host_by_latency;
Field Type Null Key Default Extra

View File

@ -3,9 +3,9 @@ Field Type Null Key Default Extra
user varchar(128) YES NULL
event varchar(128) NO NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.waits_by_user_by_latency;
DESC sys.x$waits_by_user_by_latency;
Field Type Null Key Default Extra

View File

@ -2,9 +2,9 @@ DESC sys.waits_global_by_latency;
Field Type Null Key Default Extra
events varchar(128) NO NULL
total bigint(20) unsigned NO NULL
total_latency text YES NULL
avg_latency text YES NULL
max_latency text YES NULL
total_latency varchar(12) YES NULL
avg_latency varchar(12) YES NULL
max_latency varchar(12) YES NULL
SELECT * FROM sys.waits_global_by_latency;
DESC sys.x$waits_global_by_latency;
Field Type Null Key Default Extra

View File

@ -5323,8 +5323,8 @@ mysql> CREATE OR REPLACE VIEW mydb.my_statements AS
-> SELECT sys.format_statement(DIGEST_TEXT) AS query,
-> SCHEMA_NAME AS db,
-> COUNT_STAR AS exec_count,
-> sys.format_time(SUM_TIMER_WAIT) AS total_latency,
-> sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
-> format_pico_time(SUM_TIMER_WAIT) AS total_latency,
-> format_pico_time(AVG_TIMER_WAIT) AS avg_latency,
-> ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS rows_sent_avg,
-> ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0)) AS rows_examined_avg,
-> ROUND(IFNULL(SUM_ROWS_AFFECTED / NULLIF(COUNT_STAR, 0), 0)) AS rows_affected_avg,

View File

@ -26,7 +26,9 @@ CREATE DEFINER='mariadb.sys'@'localhost' FUNCTION format_time (
COMMENT '
Description
-----------
OBSOLETE. USE BUILT-IN format_pico_time() INSTEAD
Takes a raw picoseconds value, and converts it to a human readable form.
Picoseconds are the precision that all latency values are printed in

View File

@ -172,7 +172,7 @@ BEGIN
GROUP_CONCAT(
IFNULL(
CONCAT('\n {\n',
' "time": "', IFNULL(sys.format_time(trxi.timer_wait), ''), '",\n',
' "time": "', IFNULL(format_pico_time(trxi.timer_wait), ''), '",\n',
' "state": "', IFNULL(trxi.state, ''), '",\n',
' "mode": "', IFNULL(trxi.access_mode, ''), '",\n',
' "autocommitted": "', IFNULL(trxi.autocommit, ''), '",\n',
@ -200,7 +200,7 @@ BEGIN
IFNULL(
CONCAT('\n {\n',
' "sql_text": "', IFNULL(sys.format_statement(REPLACE(sql_text, '\\', '\\\\')), ''), '",\n',
' "time": "', IFNULL(sys.format_time(timer_wait), ''), '",\n',
' "time": "', IFNULL(format_pico_time(timer_wait), ''), '",\n',
' "schema": "', IFNULL(current_schema, ''), '",\n',
' "rows_examined": ', IFNULL(rows_examined, ''), ',\n',
' "rows_affected": ', IFNULL(rows_affected, ''), ',\n',

View File

@ -355,7 +355,7 @@ BEGIN
)
THEN CONCAT(''sys.format_bytes('', COLUMN_NAME, '') AS '', COLUMN_NAME)
WHEN SUBSTRING(COLUMN_NAME, -8) = ''_latency''
THEN CONCAT(''sys.format_time('', COLUMN_NAME, '') AS '', COLUMN_NAME)
THEN CONCAT(''format_pico_time('', COLUMN_NAME, '') AS '', COLUMN_NAME)
WHEN SUBSTRING(COLUMN_NAME, -7) = ''_memory'' OR SUBSTRING(COLUMN_NAME, -17) = ''_memory_allocated''
OR ((SUBSTRING(COLUMN_NAME, -5) = ''_read'' OR SUBSTRING(COLUMN_NAME, -8) = ''_written'' OR SUBSTRING(COLUMN_NAME, -6) = ''_write'') AND SUBSTRING(COLUMN_NAME, 1, 6) <> ''COUNT_'')
THEN CONCAT(''sys.format_bytes('', COLUMN_NAME, '') AS '', COLUMN_NAME)
@ -385,15 +385,15 @@ BEGIN
)
THEN CONCAT(''sys.format_bytes(e.'', COLUMN_NAME, ''-IFNULL(s.'', COLUMN_NAME, '', 0)) AS '', COLUMN_NAME)
WHEN SUBSTRING(COLUMN_NAME, 1, 4) IN (''max_'', ''min_'') AND SUBSTRING(COLUMN_NAME, -8) = ''_latency''
THEN CONCAT(''sys.format_time(e.'', COLUMN_NAME, '') AS '', COLUMN_NAME)
THEN CONCAT(''format_pico_time(e.'', COLUMN_NAME, '') AS '', COLUMN_NAME)
WHEN COLUMN_NAME = ''avg_latency''
THEN CONCAT(''sys.format_time((e.total_latency - IFNULL(s.total_latency, 0))'',
THEN CONCAT(''format_pico_time((e.total_latency - IFNULL(s.total_latency, 0))'',
''/NULLIF(e.total - IFNULL(s.total, 0), 0)) AS '', COLUMN_NAME)
WHEN SUBSTRING(COLUMN_NAME, -12) = ''_avg_latency''
THEN CONCAT(''sys.format_time((e.'', SUBSTRING(COLUMN_NAME FROM 1 FOR CHAR_LENGTH(COLUMN_NAME)-12), ''_latency - IFNULL(s.'', SUBSTRING(COLUMN_NAME FROM 1 FOR CHAR_LENGTH(COLUMN_NAME)-12), ''_latency, 0))'',
THEN CONCAT(''format_pico_time((e.'', SUBSTRING(COLUMN_NAME FROM 1 FOR CHAR_LENGTH(COLUMN_NAME)-12), ''_latency - IFNULL(s.'', SUBSTRING(COLUMN_NAME FROM 1 FOR CHAR_LENGTH(COLUMN_NAME)-12), ''_latency, 0))'',
''/NULLIF(e.'', SUBSTRING(COLUMN_NAME FROM 1 FOR CHAR_LENGTH(COLUMN_NAME)-12), ''s - IFNULL(s.'', SUBSTRING(COLUMN_NAME FROM 1 FOR CHAR_LENGTH(COLUMN_NAME)-12), ''s, 0), 0)) AS '', COLUMN_NAME)
WHEN SUBSTRING(COLUMN_NAME, -8) = ''_latency''
THEN CONCAT(''sys.format_time(e.'', COLUMN_NAME, '' - IFNULL(s.'', COLUMN_NAME, '', 0)) AS '', COLUMN_NAME)
THEN CONCAT(''format_pico_time(e.'', COLUMN_NAME, '' - IFNULL(s.'', COLUMN_NAME, '', 0)) AS '', COLUMN_NAME)
WHEN COLUMN_NAME IN (''avg_read'', ''avg_write'', ''avg_written'')
THEN CONCAT(''sys.format_bytes(IFNULL((e.total_'', IF(COLUMN_NAME = ''avg_read'', ''read'', ''written''), ''-IFNULL(s.total_'', IF(COLUMN_NAME = ''avg_read'', ''read'', ''written''), '', 0))'',
''/NULLIF(e.count_'', IF(COLUMN_NAME = ''avg_read'', ''read'', ''write''), ''-IFNULL(s.count_'', IF(COLUMN_NAME = ''avg_read'', ''read'', ''write''), '', 0), 0), 0)) AS '',
@ -1061,4 +1061,4 @@ SELECT ''UNIX_TIMESTAMP()'' AS Variable_name, ROUND(UNIX_TIMESTAMP(NOW(3)), 3) A
END IF;
END$$
DELIMITER ;
DELIMITER ;

View File

@ -240,8 +240,8 @@ BEGIN
SELECT "SUMMARY STATISTICS";
SELECT COUNT(*) executions,
sys.format_time(SUM(timer_wait)) AS exec_time,
sys.format_time(SUM(lock_time)) AS lock_time,
format_pico_time(SUM(timer_wait)) AS exec_time,
format_pico_time(SUM(lock_time)) AS lock_time,
SUM(rows_sent) AS rows_sent,
SUM(rows_affected) AS rows_affected,
SUM(rows_examined) AS rows_examined,
@ -251,7 +251,7 @@ BEGIN
SELECT event_name,
COUNT(*) as count,
sys.format_time(SUM(timer_wait)) as latency
format_pico_time(SUM(timer_wait)) as latency
FROM stmt_stages
GROUP BY event_name
ORDER BY SUM(timer_wait) DESC;
@ -259,8 +259,8 @@ BEGIN
SELECT "LONGEST RUNNING STATEMENT";
SELECT thread_id,
sys.format_time(timer_wait) AS exec_time,
sys.format_time(lock_time) AS lock_time,
format_pico_time(timer_wait) AS exec_time,
format_pico_time(lock_time) AS lock_time,
rows_sent,
rows_affected,
rows_examined,
@ -279,7 +279,7 @@ BEGIN
IF (@sql_id IS NOT NULL) THEN
SELECT event_name,
sys.format_time(timer_wait) as latency
format_pico_time(timer_wait) as latency
FROM stmt_stages
WHERE stmt_id = @sql_id
ORDER BY event_id;

View File

@ -116,7 +116,7 @@ BEGIN
SELECT CONCAT(IF(nesting_event_id IS NOT NULL, CONCAT(nesting_event_id, ' -> '), ''),
event_id, '; ', event_id, ' [label="',
-- Convert from picoseconds to microseconds
'(', sys.format_time(timer_wait), ') ',
'(', format_pico_time(timer_wait), ') ',
IF (event_name NOT LIKE 'wait/io%',
SUBSTRING_INDEX(event_name, '/', -2),
IF (event_name NOT LIKE 'wait/io/file%' OR event_name NOT LIKE 'wait/io/socket%',
@ -170,7 +170,7 @@ BEGIN
CONCAT(sql_text, '\\n',
'errors: ', errors, '\\n',
'warnings: ', warnings, '\\n',
'lock time: ', sys.format_time(lock_time),'\\n',
'lock time: ', format_pico_time(lock_time),'\\n',
'rows affected: ', rows_affected, '\\n',
'rows sent: ', rows_sent, '\\n',
'rows examined: ', rows_examined, '\\n',

View File

@ -116,7 +116,7 @@ BEGIN
SELECT CONCAT(IF(nesting_event_id IS NOT NULL, CONCAT(nesting_event_id, ' -> '), ''),
event_id, '; ', event_id, ' [label="',
-- Convert from picoseconds to microseconds
'(', sys.format_time(timer_wait), ') ',
'(', format_pico_time(timer_wait), ') ',
IF (event_name NOT LIKE 'wait/io%',
SUBSTRING_INDEX(event_name, '/', -2),
IF (event_name NOT LIKE 'wait/io/file%' OR event_name NOT LIKE 'wait/io/socket%',
@ -188,7 +188,7 @@ BEGIN
CONCAT('statement: ', sql_text, '\\n',
'errors: ', errors, '\\n',
'warnings: ', warnings, '\\n',
'lock time: ', sys.format_time(lock_time),'\\n',
'lock time: ', format_pico_time(lock_time),'\\n',
'rows affected: ', rows_affected, '\\n',
'rows sent: ', rows_sent, '\\n',
'rows examined: ', rows_examined, '\\n',

View File

@ -196,8 +196,8 @@ CREATE DEFINER='mariadb.sys'@'localhost' PROCEDURE statement_performance_analyze
-> SELECT sys.format_statement(DIGEST_TEXT) AS query,
-> SCHEMA_NAME AS db,
-> COUNT_STAR AS exec_count,
-> sys.format_time(SUM_TIMER_WAIT) AS total_latency,
-> sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
-> format_pico_time(SUM_TIMER_WAIT) AS total_latency,
-> format_pico_time(AVG_TIMER_WAIT) AS avg_latency,
-> ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS rows_sent_avg,
-> ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0)) AS rows_examined_avg,
-> ROUND(IFNULL(SUM_ROWS_AFFECTED / NULLIF(COUNT_STAR, 0), 0)) AS rows_affected_avg,
@ -720,4 +720,4 @@ HAVING percentile > 0.95
END IF;
END$$
DELIMITER ;
DELIMITER ;

View File

@ -46,11 +46,11 @@ VIEW host_summary (
) AS
SELECT IF(accounts.host IS NULL, 'background', accounts.host) AS host,
SUM(stmt.total) AS statements,
sys.format_time(SUM(stmt.total_latency)) AS statement_latency,
sys.format_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
format_pico_time(SUM(stmt.total_latency)) AS statement_latency,
format_pico_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
SUM(stmt.full_scans) AS table_scans,
SUM(io.ios) AS file_ios,
sys.format_time(SUM(io.io_latency)) AS file_io_latency,
format_pico_time(SUM(io.io_latency)) AS file_io_latency,
SUM(accounts.current_connections) AS current_connections,
SUM(accounts.total_connections) AS total_connections,
COUNT(DISTINCT accounts.user) AS unique_users

View File

@ -49,11 +49,11 @@ VIEW host_summary (
) AS
SELECT IF(accounts.host IS NULL, 'background', accounts.host) AS host,
SUM(stmt.total) AS statements,
sys.format_time(SUM(stmt.total_latency)) AS statement_latency,
sys.format_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
format_pico_time(SUM(stmt.total_latency)) AS statement_latency,
format_pico_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
SUM(stmt.full_scans) AS table_scans,
SUM(io.ios) AS file_ios,
sys.format_time(SUM(io.io_latency)) AS file_io_latency,
format_pico_time(SUM(io.io_latency)) AS file_io_latency,
SUM(accounts.current_connections) AS current_connections,
SUM(accounts.total_connections) AS total_connections,
COUNT(DISTINCT user) AS unique_users,

View File

@ -40,7 +40,7 @@ VIEW host_summary_by_file_io (
) AS
SELECT IF(host IS NULL, 'background', host) AS host,
SUM(count_star) AS ios,
sys.format_time(SUM(sum_timer_wait)) AS io_latency
format_pico_time(SUM(sum_timer_wait)) AS io_latency
FROM performance_schema.events_waits_summary_by_host_by_event_name
WHERE event_name LIKE 'wait/io/file/%'
GROUP BY IF(host IS NULL, 'background', host)

View File

@ -58,8 +58,8 @@ VIEW host_summary_by_file_io_type (
SELECT IF(host IS NULL, 'background', host) AS host,
event_name,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(max_timer_wait) AS max_latency
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(max_timer_wait) AS max_latency
FROM performance_schema.events_waits_summary_by_host_by_event_name
WHERE event_name LIKE 'wait/io/file%'
AND count_star > 0

View File

@ -57,8 +57,8 @@ VIEW host_summary_by_stages (
SELECT IF(host IS NULL, 'background', host) AS host,
event_name,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(avg_timer_wait) AS avg_latency
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(avg_timer_wait) AS avg_latency
FROM performance_schema.events_stages_summary_by_host_by_event_name
WHERE sum_timer_wait != 0
ORDER BY IF(host IS NULL, 'background', host), sum_timer_wait DESC;

View File

@ -45,9 +45,9 @@ VIEW host_summary_by_statement_latency (
) AS
SELECT IF(host IS NULL, 'background', host) AS host,
SUM(count_star) AS total,
sys.format_time(SUM(sum_timer_wait)) AS total_latency,
sys.format_time(MAX(max_timer_wait)) AS max_latency,
sys.format_time(SUM(sum_lock_time)) AS lock_latency,
format_pico_time(SUM(sum_timer_wait)) AS total_latency,
format_pico_time(MAX(max_timer_wait)) AS max_latency,
format_pico_time(SUM(sum_lock_time)) AS lock_latency,
SUM(sum_rows_sent) AS rows_sent,
SUM(sum_rows_examined) AS rows_examined,
SUM(sum_rows_affected) AS rows_affected,

View File

@ -52,9 +52,9 @@ VIEW host_summary_by_statement_type (
SELECT IF(host IS NULL, 'background', host) AS host,
SUBSTRING_INDEX(event_name, '/', -1) AS statement,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(max_timer_wait) AS max_latency,
sys.format_time(sum_lock_time) AS lock_latency,
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(max_timer_wait) AS max_latency,
format_pico_time(sum_lock_time) AS lock_latency,
sum_rows_sent AS rows_sent,
sum_rows_examined AS rows_examined,
sum_rows_affected AS rows_affected,

View File

@ -56,10 +56,10 @@ SELECT IF(processlist_id IS NULL,
CONCAT(processlist_user, '@', processlist_host)
) user,
SUM(count_star) total,
sys.format_time(SUM(sum_timer_wait)) total_latency,
sys.format_time(MIN(min_timer_wait)) min_latency,
sys.format_time(AVG(avg_timer_wait)) avg_latency,
sys.format_time(MAX(max_timer_wait)) max_latency,
format_pico_time(SUM(sum_timer_wait)) total_latency,
format_pico_time(MIN(min_timer_wait)) min_latency,
format_pico_time(AVG(avg_timer_wait)) avg_latency,
format_pico_time(MAX(max_timer_wait)) max_latency,
thread_id,
processlist_id
FROM performance_schema.events_waits_summary_by_thread_by_event_name

View File

@ -47,12 +47,12 @@ VIEW io_global_by_file_by_latency (
) AS
SELECT sys.format_path(file_name) AS file,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
format_pico_time(sum_timer_wait) AS total_latency,
count_read,
sys.format_time(sum_timer_read) AS read_latency,
format_pico_time(sum_timer_read) AS read_latency,
count_write,
sys.format_time(sum_timer_write) AS write_latency,
format_pico_time(sum_timer_write) AS write_latency,
count_misc,
sys.format_time(sum_timer_misc) AS misc_latency
format_pico_time(sum_timer_misc) AS misc_latency
FROM performance_schema.file_summary_by_instance
ORDER BY sum_timer_wait DESC;

View File

@ -62,10 +62,10 @@ VIEW io_global_by_wait_by_bytes (
) AS
SELECT SUBSTRING_INDEX(event_name, '/', -2) event_name,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(min_timer_wait) AS min_latency,
sys.format_time(avg_timer_wait) AS avg_latency,
sys.format_time(max_timer_wait) AS max_latency,
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(min_timer_wait) AS min_latency,
format_pico_time(avg_timer_wait) AS avg_latency,
format_pico_time(max_timer_wait) AS max_latency,
count_read,
sys.format_bytes(sum_number_of_bytes_read) AS total_read,
sys.format_bytes(IFNULL(sum_number_of_bytes_read / NULLIF(count_read, 0), 0)) AS avg_read,

View File

@ -63,12 +63,12 @@ VIEW io_global_by_wait_by_latency (
) AS
SELECT SUBSTRING_INDEX(event_name, '/', -2) AS event_name,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(avg_timer_wait) AS avg_latency,
sys.format_time(max_timer_wait) AS max_latency,
sys.format_time(sum_timer_read) AS read_latency,
sys.format_time(sum_timer_write) AS write_latency,
sys.format_time(sum_timer_misc) AS misc_latency,
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(avg_timer_wait) AS avg_latency,
format_pico_time(max_timer_wait) AS max_latency,
format_pico_time(sum_timer_read) AS read_latency,
format_pico_time(sum_timer_write) AS write_latency,
format_pico_time(sum_timer_misc) AS misc_latency,
count_read,
sys.format_bytes(sum_number_of_bytes_read) AS total_read,
sys.format_bytes(IFNULL(sum_number_of_bytes_read / NULLIF(count_read, 0), 0)) AS avg_read,

View File

@ -46,7 +46,7 @@ SELECT IF(id IS NULL,
CONCAT(user, '@', host, ':', id)
) thread,
sys.format_path(object_name) file,
sys.format_time(timer_wait) AS latency,
format_pico_time(timer_wait) AS latency,
operation,
sys.format_bytes(number_of_bytes) AS requested
FROM performance_schema.events_waits_history_long

View File

@ -82,9 +82,9 @@ SELECT pps.thread_id AS thd_id,
pps.processlist_time AS time,
sys.format_statement(pps.processlist_info) AS current_statement,
IF(esc.end_event_id IS NULL,
sys.format_time(esc.timer_wait),
format_pico_time(esc.timer_wait),
NULL) AS statement_latency,
sys.format_time(esc.lock_time) AS lock_latency,
format_pico_time(esc.lock_time) AS lock_latency,
esc.rows_examined AS rows_examined,
esc.rows_sent AS rows_sent,
esc.rows_affected AS rows_affected,
@ -95,12 +95,12 @@ SELECT pps.thread_id AS thd_id,
sys.format_statement(esc.sql_text),
NULL) AS last_statement,
IF(esc.end_event_id IS NOT NULL,
sys.format_time(esc.timer_wait),
format_pico_time(esc.timer_wait),
NULL) AS last_statement_latency,
ewc.event_name AS last_wait,
IF(ewc.end_event_id IS NULL AND ewc.event_name IS NOT NULL,
'Still Waiting',
sys.format_time(ewc.timer_wait)) last_wait_latency,
format_pico_time(ewc.timer_wait)) last_wait_latency,
ewc.source
FROM performance_schema.threads AS pps
LEFT JOIN performance_schema.events_waits_current AS ewc USING (thread_id)

View File

@ -98,12 +98,12 @@ SELECT pps.thread_id AS thd_id,
pps.processlist_time AS time,
sys.format_statement(pps.processlist_info) AS current_statement,
IF(esc.end_event_id IS NULL,
sys.format_time(esc.timer_wait),
format_pico_time(esc.timer_wait),
NULL) AS statement_latency,
IF(esc.end_event_id IS NULL,
ROUND(100 * (estc.work_completed / estc.work_estimated), 2),
NULL) AS progress,
sys.format_time(esc.lock_time) AS lock_latency,
format_pico_time(esc.lock_time) AS lock_latency,
esc.rows_examined AS rows_examined,
esc.rows_sent AS rows_sent,
esc.rows_affected AS rows_affected,
@ -114,15 +114,15 @@ SELECT pps.thread_id AS thd_id,
sys.format_statement(esc.sql_text),
NULL) AS last_statement,
IF(esc.end_event_id IS NOT NULL,
sys.format_time(esc.timer_wait),
format_pico_time(esc.timer_wait),
NULL) AS last_statement_latency,
sys.format_bytes(mem.current_allocated) AS current_memory,
ewc.event_name AS last_wait,
IF(ewc.end_event_id IS NULL AND ewc.event_name IS NOT NULL,
'Still Waiting',
sys.format_time(ewc.timer_wait)) last_wait_latency,
format_pico_time(ewc.timer_wait)) last_wait_latency,
ewc.source,
sys.format_time(etc.timer_wait) AS trx_latency,
format_pico_time(etc.timer_wait) AS trx_latency,
etc.state AS trx_state,
etc.autocommit AS trx_autocommit,
conattr_pid.attr_value as pid,

View File

@ -53,13 +53,13 @@ SELECT OBJECT_SCHEMA AS table_schema,
OBJECT_NAME AS table_name,
INDEX_NAME as index_name,
COUNT_FETCH AS rows_selected,
sys.format_time(SUM_TIMER_FETCH) AS select_latency,
format_pico_time(SUM_TIMER_FETCH) AS select_latency,
COUNT_INSERT AS rows_inserted,
sys.format_time(SUM_TIMER_INSERT) AS insert_latency,
format_pico_time(SUM_TIMER_INSERT) AS insert_latency,
COUNT_UPDATE AS rows_updated,
sys.format_time(SUM_TIMER_UPDATE) AS update_latency,
format_pico_time(SUM_TIMER_UPDATE) AS update_latency,
COUNT_DELETE AS rows_deleted,
sys.format_time(SUM_TIMER_INSERT) AS delete_latency
format_pico_time(SUM_TIMER_INSERT) AS delete_latency
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE index_name IS NOT NULL
ORDER BY sum_timer_wait DESC;

View File

@ -70,23 +70,23 @@ VIEW schema_table_statistics (
) AS
SELECT pst.object_schema AS table_schema,
pst.object_name AS table_name,
sys.format_time(pst.sum_timer_wait) AS total_latency,
format_pico_time(pst.sum_timer_wait) AS total_latency,
pst.count_fetch AS rows_fetched,
sys.format_time(pst.sum_timer_fetch) AS fetch_latency,
format_pico_time(pst.sum_timer_fetch) AS fetch_latency,
pst.count_insert AS rows_inserted,
sys.format_time(pst.sum_timer_insert) AS insert_latency,
format_pico_time(pst.sum_timer_insert) AS insert_latency,
pst.count_update AS rows_updated,
sys.format_time(pst.sum_timer_update) AS update_latency,
format_pico_time(pst.sum_timer_update) AS update_latency,
pst.count_delete AS rows_deleted,
sys.format_time(pst.sum_timer_delete) AS delete_latency,
format_pico_time(pst.sum_timer_delete) AS delete_latency,
fsbi.count_read AS io_read_requests,
sys.format_bytes(fsbi.sum_number_of_bytes_read) AS io_read,
sys.format_time(fsbi.sum_timer_read) AS io_read_latency,
format_pico_time(fsbi.sum_timer_read) AS io_read_latency,
fsbi.count_write AS io_write_requests,
sys.format_bytes(fsbi.sum_number_of_bytes_write) AS io_write,
sys.format_time(fsbi.sum_timer_write) AS io_write_latency,
format_pico_time(fsbi.sum_timer_write) AS io_write_latency,
fsbi.count_misc AS io_misc_requests,
sys.format_time(fsbi.sum_timer_misc) AS io_misc_latency
format_pico_time(fsbi.sum_timer_misc) AS io_misc_latency
FROM performance_schema.table_io_waits_summary_by_table AS pst
LEFT JOIN x$ps_schema_table_statistics_io AS fsbi
ON pst.object_schema = fsbi.table_schema

View File

@ -87,21 +87,21 @@ VIEW schema_table_statistics_with_buffer (
SELECT pst.object_schema AS table_schema,
pst.object_name AS table_name,
pst.count_fetch AS rows_fetched,
sys.format_time(pst.sum_timer_fetch) AS fetch_latency,
format_pico_time(pst.sum_timer_fetch) AS fetch_latency,
pst.count_insert AS rows_inserted,
sys.format_time(pst.sum_timer_insert) AS insert_latency,
format_pico_time(pst.sum_timer_insert) AS insert_latency,
pst.count_update AS rows_updated,
sys.format_time(pst.sum_timer_update) AS update_latency,
format_pico_time(pst.sum_timer_update) AS update_latency,
pst.count_delete AS rows_deleted,
sys.format_time(pst.sum_timer_delete) AS delete_latency,
format_pico_time(pst.sum_timer_delete) AS delete_latency,
fsbi.count_read AS io_read_requests,
sys.format_bytes(fsbi.sum_number_of_bytes_read) AS io_read,
sys.format_time(fsbi.sum_timer_read) AS io_read_latency,
format_pico_time(fsbi.sum_timer_read) AS io_read_latency,
fsbi.count_write AS io_write_requests,
sys.format_bytes(fsbi.sum_number_of_bytes_write) AS io_write,
sys.format_time(fsbi.sum_timer_write) AS io_write_latency,
format_pico_time(fsbi.sum_timer_write) AS io_write_latency,
fsbi.count_misc AS io_misc_requests,
sys.format_time(fsbi.sum_timer_misc) AS io_misc_latency,
format_pico_time(fsbi.sum_timer_misc) AS io_misc_latency,
sys.format_bytes(ibp.allocated) AS innodb_buffer_allocated,
sys.format_bytes(ibp.data) AS innodb_buffer_data,
sys.format_bytes(ibp.allocated - ibp.data) AS innodb_buffer_free,

View File

@ -44,7 +44,7 @@ VIEW schema_tables_with_full_table_scans (
SELECT object_schema,
object_name,
count_read AS rows_full_scanned,
sys.format_time(sum_timer_wait) AS latency
format_pico_time(sum_timer_wait) AS latency
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE index_name IS NULL
AND count_read > 0

View File

@ -82,10 +82,10 @@ SELECT sys.format_statement(DIGEST_TEXT) AS query,
COUNT_STAR AS exec_count,
SUM_ERRORS AS err_count,
SUM_WARNINGS AS warn_count,
sys.format_time(SUM_TIMER_WAIT) AS total_latency,
sys.format_time(MAX_TIMER_WAIT) AS max_latency,
sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
sys.format_time(SUM_LOCK_TIME) AS lock_latency,
format_pico_time(SUM_TIMER_WAIT) AS total_latency,
format_pico_time(MAX_TIMER_WAIT) AS max_latency,
format_pico_time(AVG_TIMER_WAIT) AS avg_latency,
format_pico_time(SUM_LOCK_TIME) AS lock_latency,
SUM_ROWS_SENT AS rows_sent,
ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS rows_sent_avg,
SUM_ROWS_EXAMINED AS rows_examined,

View File

@ -64,7 +64,7 @@ VIEW statements_with_full_table_scans (
SELECT sys.format_statement(DIGEST_TEXT) AS query,
SCHEMA_NAME as db,
COUNT_STAR AS exec_count,
sys.format_time(SUM_TIMER_WAIT) AS total_latency,
format_pico_time(SUM_TIMER_WAIT) AS total_latency,
SUM_NO_INDEX_USED AS no_index_used_count,
SUM_NO_GOOD_INDEX_USED AS no_good_index_used_count,
ROUND(IFNULL(SUM_NO_INDEX_USED / NULLIF(COUNT_STAR, 0), 0) * 100) AS no_index_used_pct,

View File

@ -58,9 +58,9 @@ SELECT sys.format_statement(DIGEST_TEXT) AS query,
COUNT_STAR AS exec_count,
SUM_ERRORS AS err_count,
SUM_WARNINGS AS warn_count,
sys.format_time(SUM_TIMER_WAIT) AS total_latency,
sys.format_time(MAX_TIMER_WAIT) AS max_latency,
sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
format_pico_time(SUM_TIMER_WAIT) AS total_latency,
format_pico_time(MAX_TIMER_WAIT) AS max_latency,
format_pico_time(AVG_TIMER_WAIT) AS avg_latency,
SUM_ROWS_SENT AS rows_sent,
ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS rows_sent_avg,
SUM_ROWS_EXAMINED AS rows_examined,

View File

@ -58,7 +58,7 @@ VIEW statements_with_sorting (
SELECT sys.format_statement(DIGEST_TEXT) AS query,
SCHEMA_NAME db,
COUNT_STAR AS exec_count,
sys.format_time(SUM_TIMER_WAIT) AS total_latency,
format_pico_time(SUM_TIMER_WAIT) AS total_latency,
SUM_SORT_MERGE_PASSES AS sort_merge_passes,
ROUND(IFNULL(SUM_SORT_MERGE_PASSES / NULLIF(COUNT_STAR, 0), 0)) AS avg_sort_merges,
SUM_SORT_SCAN AS sorts_using_scans,

View File

@ -55,7 +55,7 @@ VIEW statements_with_temp_tables (
SELECT sys.format_statement(DIGEST_TEXT) AS query,
SCHEMA_NAME as db,
COUNT_STAR AS exec_count,
sys.format_time(SUM_TIMER_WAIT) as total_latency,
format_pico_time(SUM_TIMER_WAIT) as total_latency,
SUM_CREATED_TMP_TABLES AS memory_tmp_tables,
SUM_CREATED_TMP_DISK_TABLES AS disk_tmp_tables,
ROUND(IFNULL(SUM_CREATED_TMP_TABLES / NULLIF(COUNT_STAR, 0), 0)) AS avg_tmp_tables_per_query,

View File

@ -46,11 +46,11 @@ VIEW user_summary (
) AS
SELECT IF(accounts.user IS NULL, 'background', accounts.user) AS user,
SUM(stmt.total) AS statements,
sys.format_time(SUM(stmt.total_latency)) AS statement_latency,
sys.format_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
format_pico_time(SUM(stmt.total_latency)) AS statement_latency,
format_pico_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
SUM(stmt.full_scans) AS table_scans,
SUM(io.ios) AS file_ios,
sys.format_time(SUM(io.io_latency)) AS file_io_latency,
format_pico_time(SUM(io.io_latency)) AS file_io_latency,
SUM(accounts.current_connections) AS current_connections,
SUM(accounts.total_connections) AS total_connections,
COUNT(DISTINCT host) AS unique_hosts

View File

@ -49,11 +49,11 @@ VIEW user_summary (
) AS
SELECT IF(accounts.user IS NULL, 'background', accounts.user) AS user,
SUM(stmt.total) AS statements,
sys.format_time(SUM(stmt.total_latency)) AS statement_latency,
sys.format_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
format_pico_time(SUM(stmt.total_latency)) AS statement_latency,
format_pico_time(IFNULL(SUM(stmt.total_latency) / NULLIF(SUM(stmt.total), 0), 0)) AS statement_avg_latency,
SUM(stmt.full_scans) AS table_scans,
SUM(io.ios) AS file_ios,
sys.format_time(SUM(io.io_latency)) AS file_io_latency,
format_pico_time(SUM(io.io_latency)) AS file_io_latency,
SUM(accounts.current_connections) AS current_connections,
SUM(accounts.total_connections) AS total_connections,
COUNT(DISTINCT host) AS unique_hosts,

View File

@ -40,7 +40,7 @@ VIEW user_summary_by_file_io (
) AS
SELECT IF(user IS NULL, 'background', user) AS user,
SUM(count_star) AS ios,
sys.format_time(SUM(sum_timer_wait)) AS io_latency
format_pico_time(SUM(sum_timer_wait)) AS io_latency
FROM performance_schema.events_waits_summary_by_user_by_event_name
WHERE event_name LIKE 'wait/io/file/%'
GROUP BY IF(user IS NULL, 'background', user)

View File

@ -58,8 +58,8 @@ VIEW user_summary_by_file_io_type (
SELECT IF(user IS NULL, 'background', user) AS user,
event_name,
count_star AS total,
sys.format_time(sum_timer_wait) AS latency,
sys.format_time(max_timer_wait) AS max_latency
format_pico_time(sum_timer_wait) AS latency,
format_pico_time(max_timer_wait) AS max_latency
FROM performance_schema.events_waits_summary_by_user_by_event_name
WHERE event_name LIKE 'wait/io/file%'
AND count_star > 0

View File

@ -57,8 +57,8 @@ VIEW user_summary_by_stages (
SELECT IF(user IS NULL, 'background', user) AS user,
event_name,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(avg_timer_wait) AS avg_latency
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(avg_timer_wait) AS avg_latency
FROM performance_schema.events_stages_summary_by_user_by_event_name
WHERE sum_timer_wait != 0
ORDER BY user, sum_timer_wait DESC;

View File

@ -45,9 +45,9 @@ VIEW user_summary_by_statement_latency (
) AS
SELECT IF(user IS NULL, 'background', user) AS user,
SUM(count_star) AS total,
sys.format_time(SUM(sum_timer_wait)) AS total_latency,
sys.format_time(SUM(max_timer_wait)) AS max_latency,
sys.format_time(SUM(sum_lock_time)) AS lock_latency,
format_pico_time(SUM(sum_timer_wait)) AS total_latency,
format_pico_time(SUM(max_timer_wait)) AS max_latency,
format_pico_time(SUM(sum_lock_time)) AS lock_latency,
SUM(sum_rows_sent) AS rows_sent,
SUM(sum_rows_examined) AS rows_examined,
SUM(sum_rows_affected) AS rows_affected,

View File

@ -52,9 +52,9 @@ VIEW user_summary_by_statement_type (
SELECT IF(user IS NULL, 'background', user) AS user,
SUBSTRING_INDEX(event_name, '/', -1) AS statement,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(max_timer_wait) AS max_latency,
sys.format_time(sum_lock_time) AS lock_latency,
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(max_timer_wait) AS max_latency,
format_pico_time(sum_lock_time) AS lock_latency,
sum_rows_sent AS rows_sent,
sum_rows_examined AS rows_examined,
sum_rows_affected AS rows_affected,

View File

@ -45,10 +45,10 @@ VIEW wait_classes_global_by_avg_latency (
) AS
SELECT SUBSTRING_INDEX(event_name,'/', 3) AS event_class,
SUM(COUNT_STAR) AS total,
sys.format_time(CAST(SUM(sum_timer_wait) AS UNSIGNED)) AS total_latency,
sys.format_time(MIN(min_timer_wait)) AS min_latency,
sys.format_time(IFNULL(SUM(sum_timer_wait) / NULLIF(SUM(COUNT_STAR), 0), 0)) AS avg_latency,
sys.format_time(CAST(MAX(max_timer_wait) AS UNSIGNED)) AS max_latency
format_pico_time(CAST(SUM(sum_timer_wait) AS UNSIGNED)) AS total_latency,
format_pico_time(MIN(min_timer_wait)) AS min_latency,
format_pico_time(IFNULL(SUM(sum_timer_wait) / NULLIF(SUM(COUNT_STAR), 0), 0)) AS avg_latency,
format_pico_time(CAST(MAX(max_timer_wait) AS UNSIGNED)) AS max_latency
FROM performance_schema.events_waits_summary_global_by_event_name
WHERE sum_timer_wait > 0
AND event_name != 'idle'

View File

@ -45,10 +45,10 @@ VIEW wait_classes_global_by_latency (
) AS
SELECT SUBSTRING_INDEX(event_name,'/', 3) AS event_class,
SUM(COUNT_STAR) AS total,
sys.format_time(SUM(sum_timer_wait)) AS total_latency,
sys.format_time(MIN(min_timer_wait)) min_latency,
sys.format_time(IFNULL(SUM(sum_timer_wait) / NULLIF(SUM(COUNT_STAR), 0), 0)) AS avg_latency,
sys.format_time(MAX(max_timer_wait)) AS max_latency
format_pico_time(SUM(sum_timer_wait)) AS total_latency,
format_pico_time(MIN(min_timer_wait)) min_latency,
format_pico_time(IFNULL(SUM(sum_timer_wait) / NULLIF(SUM(COUNT_STAR), 0), 0)) AS avg_latency,
format_pico_time(MAX(max_timer_wait)) AS max_latency
FROM performance_schema.events_waits_summary_global_by_event_name
WHERE sum_timer_wait > 0
AND event_name != 'idle'

View File

@ -45,9 +45,9 @@ VIEW waits_by_host_by_latency (
SELECT IF(host IS NULL, 'background', host) AS host,
event_name AS event,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(avg_timer_wait) AS avg_latency,
sys.format_time(max_timer_wait) AS max_latency
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(avg_timer_wait) AS avg_latency,
format_pico_time(max_timer_wait) AS max_latency
FROM performance_schema.events_waits_summary_by_host_by_event_name
WHERE event_name != 'idle'
AND sum_timer_wait > 0

View File

@ -55,9 +55,9 @@ VIEW waits_by_user_by_latency (
SELECT IF(user IS NULL, 'background', user) AS user,
event_name AS event,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(avg_timer_wait) AS avg_latency,
sys.format_time(max_timer_wait) AS max_latency
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(avg_timer_wait) AS avg_latency,
format_pico_time(max_timer_wait) AS max_latency
FROM performance_schema.events_waits_summary_by_user_by_event_name
WHERE event_name != 'idle'
AND user IS NOT NULL

View File

@ -43,9 +43,9 @@ VIEW waits_global_by_latency (
) AS
SELECT event_name AS event,
count_star AS total,
sys.format_time(sum_timer_wait) AS total_latency,
sys.format_time(avg_timer_wait) AS avg_latency,
sys.format_time(max_timer_wait) AS max_latency
format_pico_time(sum_timer_wait) AS total_latency,
format_pico_time(avg_timer_wait) AS avg_latency,
format_pico_time(max_timer_wait) AS max_latency
FROM performance_schema.events_waits_summary_global_by_event_name
WHERE event_name != 'idle'
AND sum_timer_wait > 0

View File

@ -104,7 +104,7 @@ SET (SQL_SOURCE
handler.cc
hostname.cc init.cc item.cc item_buff.cc item_cmpfunc.cc
item_create.cc item_func.cc item_geofunc.cc item_row.cc
item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc item_pfsfunc.cc
item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc
key.cc log.cc lock.cc
log_event.cc log_event_server.cc
rpl_record.cc rpl_reporting.cc

View File

@ -6371,7 +6371,6 @@ public:
#include "item_jsonfunc.h"
#include "item_create.h"
#include "item_vers.h"
#include "item_pfsfunc.h"
#endif
/**

View File

@ -3588,7 +3588,7 @@ Create_func_format_pico_time Create_func_format_pico_time::s_singleton;
Item*
Create_func_format_pico_time::create_1_arg(THD *thd, Item *arg1)
{
return new (thd->mem_root) Item_func_pfs_format_pico_time(thd, arg1);
return new (thd->mem_root) Item_func_format_pico_time(thd, arg1);
}

View File

@ -1,135 +0,0 @@
/* Copyright (c) 2000, 2023, Oracle and/or its affiliates.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2.0,
as published by the Free Software Foundation.
This program is also distributed with certain software (including
but not limited to OpenSSL) that is licensed under separate terms,
as designated in a particular file or component or in included license
documentation. The authors of MySQL hereby grant you an additional
permission to link the program and your derivative works with the
separately licensed software that they have included with MySQL.
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, version 2.0, 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 */
/**
@file
@brief
This file defines all performance schema native functions
FORMAT_PICO_TIME()
*/
#ifdef USE_PRAGMA_IMPLEMENTATION
#pragma implementation // gcc: Class implementation
#endif
#include "mariadb.h" // HAVE_*
/*
It is necessary to include set_var.h instead of item.h because there
are dependencies on include order for set_var.h and item.h. This
will be resolved later.
*/
#include "set_var.h"
/** format_pico_time() */
bool Item_func_pfs_format_pico_time::fix_length_and_dec(THD *)
{
set_maybe_null();
/* Format is 'AAAA.BB UUU' = 11 characters or 'AAA ps' = 6 characters. */
m_value.set_charset(&my_charset_utf8mb3_general_ci);
return false;
}
String *Item_func_pfs_format_pico_time::val_str(String *str __attribute__ ((__unused__)))
{
/* Evaluate the argument */
double time_val= args[0]->val_real();
/* If argument is null, return null. */
null_value= args[0]->null_value;
if (null_value)
return 0;
constexpr uint64_t nano{1000};
constexpr uint64_t micro{1000 * nano};
constexpr uint64_t milli{1000 * micro};
constexpr uint64_t sec{1000 * milli};
constexpr uint64_t min{60 * sec};
constexpr uint64_t hour{60 * min};
constexpr uint64_t day{24 * hour};
/* Declaring 'volatile' as workaround for 32-bit optimization bug. */
volatile double time_abs= abs(time_val);
uint64_t divisor;
int len;
const char *unit;
/* SI-approved time units. */
if (time_abs >= day)
{
divisor= day;
unit= "d";
}
else if (time_abs >= hour)
{
divisor= hour;
unit= "h";
}
else if (time_abs >= min)
{
divisor= min;
unit= "min";
}
else if (time_abs >= sec)
{
divisor= sec;
unit= "s";
}
else if (time_abs >= milli)
{
divisor= milli;
unit= "ms";
}
else if (time_abs >= micro)
{
divisor= micro;
unit= "us";
}
else if (time_abs >= nano)
{
divisor= nano;
unit= "ns";
}
else
{
divisor= 1;
unit= "ps";
}
if (divisor == 1)
len= snprintf(m_value_buffer, sizeof(m_value_buffer), "%3d %s", (int)time_val, unit);
else
{
double value= time_val / divisor;
if (abs(value) >= 100000.0)
len= snprintf(m_value_buffer, sizeof(m_value_buffer), "%4.2e %s", value, unit);
else
len= snprintf(m_value_buffer, sizeof(m_value_buffer), "%4.2f %s", value, unit);
}
m_value.set(m_value_buffer, len, &my_charset_utf8mb3_general_ci);
return &m_value;
}

View File

@ -1,54 +0,0 @@
#ifndef ITEM_PFS_FUNC_INCLUDED
#define ITEM_PFS_FUNC_INCLUDED
/* Copyright (c) 2000, 2023, Oracle and/or its affiliates.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2.0,
as published by the Free Software Foundation.
This program is also distributed with certain software (including
but not limited to OpenSSL) that is licensed under separate terms,
as designated in a particular file or component or in included license
documentation. The authors of MySQL hereby grant you an additional
permission to link the program and your derivative works with the
separately licensed software that they have included with MySQL.
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, version 2.0, 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 */
#ifdef USE_PRAGMA_INTERFACE
#pragma interface /* gcc class implementation */
#endif
#include "item_func.h" // Item_str_func, Item_int_func
/** format_pico_time() */
class Item_func_pfs_format_pico_time : public Item_str_func {
String m_value;
char m_value_buffer[12];
public:
Item_func_pfs_format_pico_time(THD *thd, Item *a)
: Item_str_func(thd, a){};
String *val_str(String *str __attribute__ ((__unused__))) override;
LEX_CSTRING func_name_cstring() const override
{
static LEX_CSTRING name= {STRING_WITH_LEN("format_pico_time")};
return name;
}
bool fix_length_and_dec(THD *thd) override;
Item *get_copy(THD *thd) override
{
return get_item_copy<Item_func_pfs_format_pico_time>(thd, this);
}
};
#endif

View File

@ -5824,6 +5824,84 @@ bool Item_func_natural_sort_key::check_vcol_func_processor(void *arg)
VCOL_NON_DETERMINISTIC);
}
String *Item_func_format_pico_time::val_str_ascii(String *)
{
double time_val= args[0]->val_real();
null_value= args[0]->null_value;
if (null_value)
return 0;
constexpr ulonglong nano{1000};
constexpr ulonglong micro{1000 * nano};
constexpr ulonglong milli{1000 * micro};
constexpr ulonglong sec{1000 * milli};
constexpr ulonglong min{60 * sec};
constexpr ulonglong hour{60 * min};
constexpr ulonglong day{24 * hour};
double time_abs= fabs(time_val);
ulonglong divisor;
size_t len;
const char *unit;
/* SI-approved time units. */
if (time_abs >= day)
{
divisor= day;
unit= "d";
}
else if (time_abs >= hour)
{
divisor= hour;
unit= "h";
}
else if (time_abs >= min)
{
divisor= min;
unit= "min";
}
else if (time_abs >= sec)
{
divisor= sec;
unit= "s";
}
else if (time_abs >= milli)
{
divisor= milli;
unit= "ms";
}
else if (time_abs >= micro)
{
divisor= micro;
unit= "us";
}
else if (time_abs >= nano)
{
divisor= nano;
unit= "ns";
}
else
{
divisor= 1;
unit= "ps";
}
if (divisor == 1)
len= my_snprintf(m_value_buffer, sizeof(m_value_buffer), "%3d %s", (int)time_val, unit);
else
{
double value= time_val / divisor;
if (fabs(value) >= 100000.0)
len= snprintf(m_value_buffer, sizeof(m_value_buffer), "%4.2e %s", value, unit);
else
len= my_snprintf(m_value_buffer, sizeof(m_value_buffer), "%4.2f %s", value, unit);
}
m_value.length(len);
return &m_value;
}
#ifdef WITH_WSREP
#include "wsrep_mysqld.h"
#include "wsrep_server_state.h"

View File

@ -2220,6 +2220,33 @@ public:
Item *get_copy(THD *thd) override
{ return get_item_copy<Item_temptable_rowid>(thd, this); }
};
class Item_func_format_pico_time : public Item_str_ascii_func
{
/* Format is 'AAAA.BB UUU' = 11 characters or 'AAA ps' = 6 characters. */
char m_value_buffer[12];
String m_value;
public:
Item_func_format_pico_time(THD *thd, Item *a): Item_str_ascii_func(thd, a) {}
String *val_str_ascii(String *) override;
LEX_CSTRING func_name_cstring() const override
{
static LEX_CSTRING name= {STRING_WITH_LEN("format_pico_time")};
return name;
}
bool fix_length_and_dec(THD *thd) override
{
m_value.set(m_value_buffer, sizeof(m_value_buffer), default_charset());
fix_length_and_charset(sizeof(m_value_buffer), default_charset());
return false;
}
Item *get_copy(THD *thd) override
{
return get_item_copy<Item_func_format_pico_time>(thd, this);
}
};
#ifdef WITH_WSREP
#include "wsrep_api.h"