From a2a2e32c02643a0cec111511220227703fda1cd5 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 1 Jul 2024 20:15:00 +0200 Subject: Merging upstream version 1:11.4.2. Signed-off-by: Daniel Baumann --- mysql-test/main/func_format.test | 120 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 mysql-test/main/func_format.test (limited to 'mysql-test/main/func_format.test') diff --git a/mysql-test/main/func_format.test b/mysql-test/main/func_format.test new file mode 100644 index 00000000..a175d3ed --- /dev/null +++ b/mysql-test/main/func_format.test @@ -0,0 +1,120 @@ +# Testcases for PFS functions are backported from MySQL + +--echo # MDEV-19629: Implement MySQL 8.0 native functions: format_bytes(), format_pico_time() and ps_thread_id() +--echo # +--echo # Tests for the Performance Schema native function format_pico_time() +--echo # +--echo + +SELECT format_pico_time(NULL); +--echo +SELECT format_pico_time(0); +--echo +SELECT format_pico_time(1); +--echo +SELECT format_pico_time(999); +--echo +SELECT format_pico_time(1000); +--echo +SELECT format_pico_time(1001); +--echo +SELECT format_pico_time(999999); +--echo +SELECT format_pico_time(1000000); +--echo +SELECT format_pico_time(1000001); +--echo +SELECT format_pico_time(1010000); +--echo +SELECT format_pico_time(987654321); +--echo +SELECT format_pico_time(1000000000); +--echo +SELECT format_pico_time(999876000000); +--echo +SELECT format_pico_time(999999999999); +--echo +SELECT format_pico_time(1000000000000); +--echo +SELECT format_pico_time(59000000000000); +--echo +SELECT format_pico_time(60000000000000); +--echo +SELECT format_pico_time(3549000000000000); +--echo +SELECT format_pico_time(3599000000000000); +--echo +SELECT format_pico_time(3600000000000000); +--echo +SELECT format_pico_time(power(2, 63)); +--echo +SELECT format_pico_time((power(2, 63) - 1) * 2 + 1); +--echo +SELECT format_pico_time(36000000.495523); +--echo +SELECT format_pico_time(1000 * pow(10,12) * 86400); +--echo +SELECT format_pico_time(86400000000000000000); +--echo +SELECT format_pico_time(86400000000000000000+5000); + +--echo +--echo ## Negative values are ok +SELECT format_pico_time(1010000 * -1); + +--echo +--echo ## Force exponent +SELECT format_pico_time(8650000000000000000099); +--echo +SELECT format_pico_time(-8650000000000000000099); +--echo +SELECT format_pico_time(8640000000000000000099 * 2); +--echo + +--echo +--echo ## Text input +SELECT format_pico_time("foo"); +--echo +SELECT format_pico_time(""); +--echo +SELECT format_pico_time("118059162071741143500099"); +--echo +SELECT format_pico_time("-118059162071741143500099"); +--echo +--echo ## Recognizes up to first non-numeric +SELECT format_pico_time("40000 * 2000"); +--echo +SELECT format_pico_time("40000 foo 2000"); + +--echo ## Aggregate functions +USE test; +--echo +CREATE TABLE timer_waits (id VARCHAR(10), wait BIGINT UNSIGNED DEFAULT NULL) DEFAULT CHARSET = utf8mb4; +--echo +# Max BIGINT unsigned is 18 446 744 073 709 551 615 +INSERT INTO timer_waits VALUES ('1 sec', 1000000000000); +INSERT INTO timer_waits VALUES ('1 min', 60000000000000); +INSERT INTO timer_waits VALUES ('1 hour', 3600000000000000); +INSERT INTO timer_waits VALUES ('1 day', 86400000000000000); +INSERT INTO timer_waits VALUES ('100 days', 8640000000000000000); +--echo +SELECT id, format_pico_time(wait), wait FROM timer_waits; +--echo +SELECT sum(wait), format_pico_time(sum(wait)) FROM timer_waits; +--echo +SELECT avg(wait), format_pico_time(avg(wait)) FROM timer_waits; +--echo +SELECT min(wait), format_pico_time(min(wait)) FROM timer_waits; +--echo +SELECT max(wait), format_pico_time(max(wait)) FROM timer_waits; +--echo +DROP TABLE timer_waits; + +--echo ## Using Scientific Notation +SELECT format_pico_time(3e9); +--echo +SELECT format_pico_time(4e6); +--echo +SELECT format_pico_time(5e3); +--echo +SELECT format_pico_time(6e2); -- cgit v1.2.3