Skip to content

Commit d85595e

Browse files
rluvatonalamb
andauthored
perf: optimize CASE WHEN lookup table (2.5-22.5 times faster) (apache#18183)
**Half of the changes are new tests** ## Which issue does this PR close? N/A Part of: - #18075 Benchmark is in: - #18203 ## Rationale for this change Optimize for Lookup table like `CASE WHEN`: ```sql CASE company WHEN 1 THEN 'Apple' WHEN 5 THEN 'Samsung' WHEN 2 THEN 'Motorola' WHEN 3 THEN 'LG' ELSE 'Other' END ``` ## What changes are included in this PR? Implement the case when as a lookup table ## Are these changes tested? Yes, a lot ## Are there any user-facing changes? Nope ----- # Benchmark results (run against main before the #18152 was merged) ## Env ```console $ neofetch .-/+oossssoo+/-. ubuntu@ip- `:+ssssssssssssssssss+:` ----------------------- -+ssssssssssssssssssyyssss+- OS: Ubuntu 24.04.3 LTS x86_64 .ossssssssssssssssssdMMMNysssso. Host: c5d.metal 00001 /ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 6.14.0-1011-aws +ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 1 hour, 34 mins /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 818 (dpkg), 4 (snap) .ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.2.21 +sssshhhyNMMNyssssssssssssyNMMMysssssss+ Terminal: /dev/pts/0 ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon Platinum 8275CL (96) @ 3.900GHz ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 1959MiB / 193026MiB +sssshhhyNMMNyssssssssssssyNMMMysssssss+ .ssssssssdMMMNhsssssssssshNMMMdssssssss. /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ +sssssssssdmydMMMMMMMMddddyssssssss+ /ssssssssssshdmNNNNmyNMMMMhssssss/ .ossssssssssssssssssdMMMNysssso. -+sssssssssssssssssyyyssss+- `:+ssssssssssssssssss+:` .-/+oossssoo+/-. ``` ## Formatted output ### Lookup table from `i32` to `utf8` <details> <summary>Details</summary> | Entries | Match distribution | In range | Nulls | Before | After | Speedup factor | Improvement percent | |:--------|:----------------------|:---------|:------|:----------|:----------|:---------------|:--------------------| | 5 | only first 2 are true | 0.1 | 0 | 342.42 µs | 124.29 µs | 2.76 | 63.70% | | 5 | only first 2 are true | 0.1 | 0.1 | 486.07 µs | 132.26 µs | 3.68 | 72.79% | | 5 | only first 2 are true | 0.1 | 0.5 | 452.28 µs | 136.54 µs | 3.31 | 69.81% | | 5 | only first 2 are true | 0.5 | 0 | 341.64 µs | 124.24 µs | 2.75 | 63.63% | | 5 | only first 2 are true | 0.5 | 0.1 | 485.5 µs | 131.59 µs | 3.69 | 72.90% | | 5 | only first 2 are true | 0.5 | 0.5 | 452.87 µs | 136.07 µs | 3.33 | 69.95% | | 5 | only first 2 are true | 0.9 | 0 | 342.3 µs | 124.26 µs | 2.75 | 63.70% | | 5 | only first 2 are true | 0.9 | 0.1 | 486.23 µs | 131.58 µs | 3.70 | 72.94% | | 5 | only first 2 are true | 1 | 0 | 342.17 µs | 124.18 µs | 2.76 | 63.71% | | 5 | all equally true | 0.1 | 0 | 572.16 µs | 128.25 µs | 4.46 | 77.59% | | 5 | all equally true | 0.1 | 0.1 | 729.22 µs | 137.72 µs | 5.29 | 81.11% | | 5 | all equally true | 0.1 | 0.5 | 613.92 µs | 143.11 µs | 4.29 | 76.69% | | 5 | all equally true | 0.5 | 0 | 581.46 µs | 128.06 µs | 4.54 | 77.98% | | 5 | all equally true | 0.5 | 0.1 | 729.15 µs | 137.51 µs | 5.30 | 81.14% | | 5 | all equally true | 0.5 | 0.5 | 614.96 µs | 142.61 µs | 4.31 | 76.81% | | 5 | all equally true | 0.9 | 0 | 582.95 µs | 128.05 µs | 4.55 | 78.03% | | 5 | all equally true | 0.9 | 0.1 | 729.73 µs | 137.78 µs | 5.30 | 81.12% | | 5 | all equally true | 1 | 0 | 582.91 µs | 128.10 µs | 4.55 | 78.02% | | 10 | only first 2 are true | 0.1 | 0 | 343.09 µs | 124.25 µs | 2.76 | 63.79% | | 10 | only first 2 are true | 0.1 | 0.1 | 485.82 µs | 131.55 µs | 3.69 | 72.92% | | 10 | only first 2 are true | 0.1 | 0.5 | 452.13 µs | 135.86 µs | 3.33 | 69.95% | | 10 | only first 2 are true | 0.5 | 0 | 341.8 µs | 124.47 µs | 2.75 | 63.58% | | 10 | only first 2 are true | 0.5 | 0.1 | 485.93 µs | 131.76 µs | 3.69 | 72.89% | | 10 | only first 2 are true | 0.5 | 0.5 | 451.78 µs | 134.69 µs | 3.35 | 70.19% | | 10 | only first 2 are true | 0.9 | 0 | 341.35 µs | 124.23 µs | 2.75 | 63.61% | | 10 | only first 2 are true | 0.9 | 0.1 | 486.49 µs | 131.61 µs | 3.70 | 72.95% | | 10 | only first 2 are true | 1 | 0 | 341.9 µs | 124.23 µs | 2.75 | 63.67% | | 10 | all equally true | 0.1 | 0 | 805.49 µs | 128.42 µs | 6.27 | 84.06% | | 10 | all equally true | 0.1 | 0.1 | 1.02 ms | 139.42 µs | 7.35 | 86.40% | | 10 | all equally true | 0.1 | 0.5 | 831.82 µs | 148.33 µs | 5.61 | 82.17% | | 10 | all equally true | 0.5 | 0 | 804.29 µs | 127.81 µs | 6.29 | 84.11% | | 10 | all equally true | 0.5 | 0.1 | 1.03 ms | 139.43 µs | 7.37 | 86.43% | | 10 | all equally true | 0.5 | 0.5 | 834.77 µs | 147.32 µs | 5.67 | 82.35% | | 10 | all equally true | 0.9 | 0 | 804.09 µs | 127.89 µs | 6.29 | 84.10% | | 10 | all equally true | 0.9 | 0.1 | 1.03 ms | 139.37 µs | 7.38 | 86.45% | | 10 | all equally true | 1 | 0 | 804.72 µs | 127.62 µs | 6.31 | 84.14% | | 20 | only first 2 are true | 0.1 | 0 | 341.46 µs | 124.65 µs | 2.74 | 63.50% | | 20 | only first 2 are true | 0.1 | 0.1 | 485.44 µs | 131.55 µs | 3.69 | 72.90% | | 20 | only first 2 are true | 0.1 | 0.5 | 451.93 µs | 135.37 µs | 3.34 | 70.05% | | 20 | only first 2 are true | 0.5 | 0 | 341.68 µs | 124.20 µs | 2.75 | 63.65% | | 20 | only first 2 are true | 0.5 | 0.1 | 485.82 µs | 131.71 µs | 3.69 | 72.89% | | 20 | only first 2 are true | 0.5 | 0.5 | 453.28 µs | 134.95 µs | 3.36 | 70.23% | | 20 | only first 2 are true | 0.9 | 0 | 342.09 µs | 124.31 µs | 2.75 | 63.66% | | 20 | only first 2 are true | 0.9 | 0.1 | 486.23 µs | 131.68 µs | 3.69 | 72.92% | | 20 | only first 2 are true | 1 | 0 | 344.5 µs | 124.08 µs | 2.78 | 63.98% | | 20 | all equally true | 0.1 | 0 | 1.17 ms | 129.57 µs | 9.07 | 88.97% | | 20 | all equally true | 0.1 | 0.1 | 1.52 ms | 139.71 µs | 10.88 | 90.81% | | 20 | all equally true | 0.1 | 0.5 | 1.23 ms | 162.51 µs | 7.56 | 86.77% | | 20 | all equally true | 0.5 | 0 | 1.17 ms | 129.42 µs | 9.05 | 88.95% | | 20 | all equally true | 0.5 | 0.1 | 1.53 ms | 139.46 µs | 10.94 | 90.86% | | 20 | all equally true | 0.5 | 0.5 | 1.23 ms | 160.13 µs | 7.69 | 86.99% | | 20 | all equally true | 0.9 | 0 | 1.17 ms | 130.18 µs | 9.00 | 88.89% | | 20 | all equally true | 0.9 | 0.1 | 1.53 ms | 141.68 µs | 10.79 | 90.73% | | 20 | all equally true | 1 | 0 | 1.17 ms | 129.26 µs | 9.05 | 88.95% | </details> ### Lookup table from `utf8` to `i32` <details> <summary>Details</summary> | Entries | Match distribution | In range | Nulls | Before | After | Speedup factor | Improvement percent | |:--------|:----------------------|:---------|:------|:----------|:----------|:---------------|:--------------------| | 5 | only first 2 are true | 0.1 | 0 | 446.57 µs | 111.66 µs | 4.00 | 75.00% | | 5 | only first 2 are true | 0.1 | 0.1 | 566.38 µs | 118.01 µs | 4.80 | 79.16% | | 5 | only first 2 are true | 0.1 | 0.5 | 516.01 µs | 100.55 µs | 5.13 | 80.51% | | 5 | only first 2 are true | 0.5 | 0 | 446.29 µs | 111.84 µs | 3.99 | 74.94% | | 5 | only first 2 are true | 0.5 | 0.1 | 566.8 µs | 118.37 µs | 4.79 | 79.12% | | 5 | only first 2 are true | 0.5 | 0.5 | 518.22 µs | 100.57 µs | 5.15 | 80.59% | | 5 | only first 2 are true | 0.9 | 0 | 446.05 µs | 111.87 µs | 3.99 | 74.92% | | 5 | only first 2 are true | 0.9 | 0.1 | 566.68 µs | 118.22 µs | 4.79 | 79.14% | | 5 | only first 2 are true | 1 | 0 | 445.79 µs | 111.64 µs | 3.99 | 74.96% | | 5 | all equally true | 0.1 | 0 | 807.39 µs | 116.74 µs | 6.92 | 85.54% | | 5 | all equally true | 0.1 | 0.1 | 966.6 µs | 124.14 µs | 7.79 | 87.16% | | 5 | all equally true | 0.1 | 0.5 | 804.4 µs | 103.10 µs | 7.80 | 87.18% | | 5 | all equally true | 0.5 | 0 | 806.04 µs | 117.15 µs | 6.88 | 85.47% | | 5 | all equally true | 0.5 | 0.1 | 965.02 µs | 123.88 µs | 7.79 | 87.16% | | 5 | all equally true | 0.5 | 0.5 | 807.47 µs | 103.09 µs | 7.83 | 87.23% | | 5 | all equally true | 0.9 | 0 | 807.35 µs | 118.56 µs | 6.81 | 85.32% | | 5 | all equally true | 0.9 | 0.1 | 968.4 µs | 125.36 µs | 7.72 | 87.06% | | 5 | all equally true | 1 | 0 | 808.66 µs | 116.90 µs | 6.92 | 85.54% | | 10 | only first 2 are true | 0.1 | 0 | 445.58 µs | 111.32 µs | 4.00 | 75.02% | | 10 | only first 2 are true | 0.1 | 0.1 | 565.28 µs | 117.99 µs | 4.79 | 79.13% | | 10 | only first 2 are true | 0.1 | 0.5 | 516.07 µs | 100.66 µs | 5.13 | 80.50% | | 10 | only first 2 are true | 0.5 | 0 | 444.97 µs | 111.74 µs | 3.98 | 74.89% | | 10 | only first 2 are true | 0.5 | 0.1 | 567.15 µs | 118.50 µs | 4.79 | 79.11% | | 10 | only first 2 are true | 0.5 | 0.5 | 517.95 µs | 100.56 µs | 5.15 | 80.59% | | 10 | only first 2 are true | 0.9 | 0 | 446 µs | 111.74 µs | 3.99 | 74.95% | | 10 | only first 2 are true | 0.9 | 0.1 | 567.03 µs | 118.47 µs | 4.79 | 79.11% | | 10 | only first 2 are true | 1 | 0 | 446.02 µs | 111.67 µs | 3.99 | 74.96% | | 10 | all equally true | 0.1 | 0 | 1.4 ms | 116.93 µs | 11.96 | 91.64% | | 10 | all equally true | 0.1 | 0.1 | 1.61 ms | 123.50 µs | 13.07 | 92.35% | | 10 | all equally true | 0.1 | 0.5 | 1.3 ms | 102.04 µs | 12.72 | 92.14% | | 10 | all equally true | 0.5 | 0 | 1.38 ms | 116.69 µs | 11.87 | 91.57% | | 10 | all equally true | 0.5 | 0.1 | 1.62 ms | 123.70 µs | 13.11 | 92.37% | | 10 | all equally true | 0.5 | 0.5 | 1.3 ms | 102.63 µs | 12.69 | 92.12% | | 10 | all equally true | 0.9 | 0 | 1.4 ms | 116.34 µs | 12.01 | 91.67% | | 10 | all equally true | 0.9 | 0.1 | 1.62 ms | 123.65 µs | 13.13 | 92.38% | | 10 | all equally true | 1 | 0 | 1.4 ms | 115.50 µs | 12.13 | 91.76% | | 20 | only first 2 are true | 0.1 | 0 | 444.8 µs | 111.29 µs | 4.00 | 74.98% | | 20 | only first 2 are true | 0.1 | 0.1 | 565.22 µs | 117.95 µs | 4.79 | 79.13% | | 20 | only first 2 are true | 0.1 | 0.5 | 515.85 µs | 100.57 µs | 5.13 | 80.50% | | 20 | only first 2 are true | 0.5 | 0 | 444.99 µs | 111.71 µs | 3.98 | 74.90% | | 20 | only first 2 are true | 0.5 | 0.1 | 567.19 µs | 118.40 µs | 4.79 | 79.13% | | 20 | only first 2 are true | 0.5 | 0.5 | 517.09 µs | 100.73 µs | 5.13 | 80.52% | | 20 | only first 2 are true | 0.9 | 0 | 444.54 µs | 111.77 µs | 3.98 | 74.86% | | 20 | only first 2 are true | 0.9 | 0.1 | 566.4 µs | 118.35 µs | 4.79 | 79.11% | | 20 | only first 2 are true | 1 | 0 | 444.98 µs | 111.97 µs | 3.97 | 74.84% | | 20 | all equally true | 0.1 | 0 | 2.38 ms | 116.41 µs | 20.47 | 95.12% | | 20 | all equally true | 0.1 | 0.1 | 2.74 ms | 121.93 µs | 22.45 | 95.55% | | 20 | all equally true | 0.1 | 0.5 | 2.16 ms | 101.35 µs | 21.31 | 95.31% | | 20 | all equally true | 0.5 | 0 | 2.37 ms | 116.09 µs | 20.45 | 95.11% | | 20 | all equally true | 0.5 | 0.1 | 2.74 ms | 122.10 µs | 22.45 | 95.55% | | 20 | all equally true | 0.5 | 0.5 | 2.16 ms | 101.41 µs | 21.33 | 95.31% | | 20 | all equally true | 0.9 | 0 | 2.37 ms | 116.09 µs | 20.42 | 95.10% | | 20 | all equally true | 0.9 | 0.1 | 2.75 ms | 122.30 µs | 22.50 | 95.56% | | 20 | all equally true | 1 | 0 | 2.37 ms | 116.22 µs | 20.43 | 95.11% | </details> ## criterion output: <details> <summary>Benchmark results</summary> ``` lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [128.08 µs 128.25 µs 128.47 µs] change: [-77.646% -77.585% -77.523%] (p = 0.00 < 0.05) Performance has improved. Found 15 outliers among 100 measurements (15.00%) 5 (5.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [116.61 µs 116.74 µs 116.88 µs] change: [-85.584% -85.541% -85.494%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 2 (2.00%) high mild 7 (7.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [124.21 µs 124.29 µs 124.40 µs] change: [-63.787% -63.703% -63.618%] (p = 0.00 < 0.05) Performance has improved. Found 13 outliers among 100 measurements (13.00%) 3 (3.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [111.57 µs 111.66 µs 111.77 µs] change: [-75.040% -74.996% -74.953%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 3 (3.00%) high mild 6 (6.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [128.15 µs 128.42 µs 128.70 µs] change: [-84.100% -84.057% -84.018%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high mild lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [116.49 µs 116.93 µs 117.40 µs] change: [-91.665% -91.637% -91.610%] (p = 0.00 < 0.05) Performance has improved. lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [124.18 µs 124.25 µs 124.32 µs] change: [-63.877% -63.785% -63.700%] (p = 0.00 < 0.05) Performance has improved. Found 10 outliers among 100 measurements (10.00%) 4 (4.00%) high mild 6 (6.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [111.27 µs 111.32 µs 111.38 µs] change: [-75.062% -75.017% -74.972%] (p = 0.00 < 0.05) Performance has improved. Found 11 outliers among 100 measurements (11.00%) 7 (7.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [129.47 µs 129.57 µs 129.71 µs] change: [-88.994% -88.969% -88.947%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 1 (1.00%) high mild 11 (11.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [115.77 µs 116.41 µs 117.19 µs] change: [-95.137% -95.115% -95.094%] (p = 0.00 < 0.05) Performance has improved. Found 14 outliers among 100 measurements (14.00%) 3 (3.00%) high mild 11 (11.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [124.45 µs 124.65 µs 124.88 µs] change: [-63.587% -63.495% -63.392%] (p = 0.00 < 0.05) Performance has improved. Found 2 outliers among 100 measurements (2.00%) 1 (1.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0 time: [111.20 µs 111.29 µs 111.41 µs] change: [-75.032% -74.980% -74.925%] (p = 0.00 < 0.05) Performance has improved. Found 16 outliers among 100 measurements (16.00%) 4 (4.00%) high mild 12 (12.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [137.62 µs 137.72 µs 137.85 µs] change: [-81.149% -81.114% -81.080%] (p = 0.00 < 0.05) Performance has improved. Found 13 outliers among 100 measurements (13.00%) 2 (2.00%) high mild 11 (11.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [123.72 µs 124.14 µs 124.62 µs] change: [-87.199% -87.157% -87.110%] (p = 0.00 < 0.05) Performance has improved. Found 17 outliers among 100 measurements (17.00%) 17 (17.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [132.00 µs 132.26 µs 132.54 µs] change: [-72.864% -72.790% -72.722%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [117.86 µs 118.01 µs 118.19 µs] change: [-79.210% -79.164% -79.123%] (p = 0.00 < 0.05) Performance has improved. Found 17 outliers among 100 measurements (17.00%) 3 (3.00%) high mild 14 (14.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [139.31 µs 139.42 µs 139.56 µs] change: [-86.426% -86.396% -86.369%] (p = 0.00 < 0.05) Performance has improved. Found 13 outliers among 100 measurements (13.00%) 1 (1.00%) high mild 12 (12.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [123.41 µs 123.50 µs 123.58 µs] change: [-92.365% -92.349% -92.335%] (p = 0.00 < 0.05) Performance has improved. Found 5 outliers among 100 measurements (5.00%) 3 (3.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [131.40 µs 131.55 µs 131.70 µs] change: [-72.995% -72.922% -72.862%] (p = 0.00 < 0.05) Performance has improved. Found 17 outliers among 100 measurements (17.00%) 4 (4.00%) low severe 3 (3.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [117.82 µs 117.99 µs 118.18 µs] change: [-79.171% -79.127% -79.084%] (p = 0.00 < 0.05) Performance has improved. Found 20 outliers among 100 measurements (20.00%) 17 (17.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [139.56 µs 139.71 µs 139.88 µs] change: [-90.824% -90.806% -90.787%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 6 (6.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [121.79 µs 121.93 µs 122.13 µs] change: [-95.551% -95.545% -95.537%] (p = 0.00 < 0.05) Performance has improved. Found 7 outliers among 100 measurements (7.00%) 4 (4.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [131.45 µs 131.55 µs 131.68 µs] change: [-72.952% -72.901% -72.849%] (p = 0.00 < 0.05) Performance has improved. Found 16 outliers among 100 measurements (16.00%) 4 (4.00%) high mild 12 (12.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.1 time: [117.77 µs 117.95 µs 118.16 µs] change: [-79.183% -79.132% -79.083%] (p = 0.00 < 0.05) Performance has improved. Found 18 outliers among 100 measurements (18.00%) 4 (4.00%) high mild 14 (14.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [142.92 µs 143.11 µs 143.32 µs] change: [-76.751% -76.689% -76.631%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 2 (2.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [103.01 µs 103.10 µs 103.20 µs] change: [-87.210% -87.183% -87.150%] (p = 0.00 < 0.05) Performance has improved. Found 7 outliers among 100 measurements (7.00%) 5 (5.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [136.35 µs 136.54 µs 136.72 µs] change: [-69.862% -69.811% -69.768%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) low mild lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [100.48 µs 100.55 µs 100.63 µs] change: [-80.552% -80.514% -80.470%] (p = 0.00 < 0.05) Performance has improved. Found 7 outliers among 100 measurements (7.00%) 5 (5.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [148.15 µs 148.33 µs 148.53 µs] change: [-82.208% -82.168% -82.129%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 1 (1.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [101.98 µs 102.04 µs 102.11 µs] change: [-92.159% -92.140% -92.121%] (p = 0.00 < 0.05) Performance has improved. Found 6 outliers among 100 measurements (6.00%) 4 (4.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [135.62 µs 135.86 µs 136.11 µs] change: [-70.018% -69.951% -69.891%] (p = 0.00 < 0.05) Performance has improved. Found 2 outliers among 100 measurements (2.00%) 1 (1.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [100.56 µs 100.66 µs 100.78 µs] change: [-80.545% -80.495% -80.448%] (p = 0.00 < 0.05) Performance has improved. Found 6 outliers among 100 measurements (6.00%) 2 (2.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [162.30 µs 162.51 µs 162.73 µs] change: [-86.797% -86.769% -86.742%] (p = 0.00 < 0.05) Performance has improved. Found 2 outliers among 100 measurements (2.00%) 1 (1.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [101.28 µs 101.35 µs 101.43 µs] change: [-95.315% -95.307% -95.296%] (p = 0.00 < 0.05) Performance has improved. Found 7 outliers among 100 measurements (7.00%) 3 (3.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [135.24 µs 135.37 µs 135.50 µs] change: [-70.108% -70.046% -69.984%] (p = 0.00 < 0.05) Performance has improved. Found 6 outliers among 100 measurements (6.00%) 1 (1.00%) low mild 3 (3.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.1, nulls: 0.5 time: [100.50 µs 100.57 µs 100.64 µs] change: [-80.547% -80.504% -80.464%] (p = 0.00 < 0.05) Performance has improved. Found 7 outliers among 100 measurements (7.00%) 4 (4.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [127.93 µs 128.06 µs 128.22 µs] change: [-78.023% -77.976% -77.936%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 1 (1.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [117.03 µs 117.15 µs 117.27 µs] change: [-85.495% -85.466% -85.438%] (p = 0.00 < 0.05) Performance has improved. Found 5 outliers among 100 measurements (5.00%) 2 (2.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [124.19 µs 124.24 µs 124.30 µs] change: [-63.716% -63.634% -63.552%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 3 (3.00%) high mild 5 (5.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [111.71 µs 111.84 µs 111.99 µs] change: [-74.989% -74.940% -74.897%] (p = 0.00 < 0.05) Performance has improved. Found 27 outliers among 100 measurements (27.00%) 13 (13.00%) low severe 4 (4.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [127.65 µs 127.81 µs 128.00 µs] change: [-84.142% -84.109% -84.075%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 3 (3.00%) high mild 9 (9.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [116.32 µs 116.69 µs 117.17 µs] change: [-91.627% -91.573% -91.515%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 1 (1.00%) high mild 11 (11.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [124.30 µs 124.47 µs 124.67 µs] change: [-63.643% -63.584% -63.525%] (p = 0.00 < 0.05) Performance has improved. Found 17 outliers among 100 measurements (17.00%) 1 (1.00%) high mild 16 (16.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [111.57 µs 111.74 µs 111.93 µs] change: [-74.941% -74.888% -74.840%] (p = 0.00 < 0.05) Performance has improved. Found 4 outliers among 100 measurements (4.00%) 3 (3.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [129.27 µs 129.42 µs 129.60 µs] change: [-88.965% -88.945% -88.927%] (p = 0.00 < 0.05) Performance has improved. Found 19 outliers among 100 measurements (19.00%) 3 (3.00%) high mild 16 (16.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [115.99 µs 116.09 µs 116.19 µs] change: [-95.120% -95.111% -95.103%] (p = 0.00 < 0.05) Performance has improved. Found 5 outliers among 100 measurements (5.00%) 2 (2.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [124.12 µs 124.20 µs 124.31 µs] change: [-63.736% -63.650% -63.558%] (p = 0.00 < 0.05) Performance has improved. Found 15 outliers among 100 measurements (15.00%) 6 (6.00%) high mild 9 (9.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0 time: [111.56 µs 111.71 µs 111.88 µs] change: [-74.957% -74.896% -74.827%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [137.42 µs 137.51 µs 137.60 µs] change: [-81.179% -81.141% -81.105%] (p = 0.00 < 0.05) Performance has improved. Found 15 outliers among 100 measurements (15.00%) 3 (3.00%) low severe 7 (7.00%) low mild 3 (3.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [123.76 µs 123.88 µs 124.00 µs] change: [-87.183% -87.163% -87.143%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [131.53 µs 131.59 µs 131.66 µs] change: [-72.950% -72.896% -72.845%] (p = 0.00 < 0.05) Performance has improved. Found 10 outliers among 100 measurements (10.00%) 4 (4.00%) high mild 6 (6.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [118.16 µs 118.37 µs 118.60 µs] change: [-79.167% -79.116% -79.055%] (p = 0.00 < 0.05) Performance has improved. Found 16 outliers among 100 measurements (16.00%) 12 (12.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [139.29 µs 139.43 µs 139.58 µs] change: [-86.468% -86.429% -86.385%] (p = 0.00 < 0.05) Performance has improved. Found 4 outliers among 100 measurements (4.00%) 1 (1.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [123.56 µs 123.70 µs 123.86 µs] change: [-92.393% -92.373% -92.353%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 4 (4.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [131.64 µs 131.76 µs 131.91 µs] change: [-72.956% -72.885% -72.810%] (p = 0.00 < 0.05) Performance has improved. Found 17 outliers among 100 measurements (17.00%) 4 (4.00%) high mild 13 (13.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [118.24 µs 118.50 µs 118.77 µs] change: [-79.167% -79.106% -79.050%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 3 (3.00%) high mild lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [139.41 µs 139.46 µs 139.52 µs] change: [-90.879% -90.862% -90.845%] (p = 0.00 < 0.05) Performance has improved. Found 11 outliers among 100 measurements (11.00%) 8 (8.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [121.95 µs 122.10 µs 122.28 µs] change: [-95.557% -95.546% -95.533%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 4 (4.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [131.58 µs 131.71 µs 131.87 µs] change: [-72.935% -72.889% -72.850%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 2 (2.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.1 time: [118.20 µs 118.40 µs 118.64 µs] change: [-79.170% -79.125% -79.082%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 1 (1.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [142.46 µs 142.61 µs 142.79 µs] change: [-76.856% -76.810% -76.763%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 2 (2.00%) low mild 4 (4.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [103.02 µs 103.09 µs 103.17 µs] change: [-87.259% -87.233% -87.205%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 1 (1.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [135.88 µs 136.07 µs 136.30 µs] change: [-70.013% -69.954% -69.895%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 4 (4.00%) high mild 5 (5.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [100.50 µs 100.57 µs 100.65 µs] change: [-80.633% -80.593% -80.551%] (p = 0.00 < 0.05) Performance has improved. Found 4 outliers among 100 measurements (4.00%) 2 (2.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [147.17 µs 147.32 µs 147.49 µs] change: [-82.386% -82.352% -82.315%] (p = 0.00 < 0.05) Performance has improved. Found 5 outliers among 100 measurements (5.00%) 2 (2.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [102.54 µs 102.63 µs 102.73 µs] change: [-92.137% -92.119% -92.099%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 4 (4.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [134.61 µs 134.69 µs 134.78 µs] change: [-70.271% -70.187% -70.123%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 2 (2.00%) low mild 6 (6.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [100.45 µs 100.56 µs 100.67 µs] change: [-80.633% -80.585% -80.535%] (p = 0.00 < 0.05) Performance has improved. Found 6 outliers among 100 measurements (6.00%) 4 (4.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [159.96 µs 160.13 µs 160.31 µs] change: [-87.017% -86.991% -86.966%] (p = 0.00 < 0.05) Performance has improved. Found 16 outliers among 100 measurements (16.00%) 13 (13.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [101.36 µs 101.41 µs 101.47 µs] change: [-95.318% -95.311% -95.301%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 5 (5.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [134.81 µs 134.95 µs 135.09 µs] change: [-70.282% -70.228% -70.174%] (p = 0.00 < 0.05) Performance has improved. Found 13 outliers among 100 measurements (13.00%) 4 (4.00%) low mild 7 (7.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.5, nulls: 0.5 time: [100.61 µs 100.73 µs 100.85 µs] change: [-80.563% -80.520% -80.473%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 2 (2.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [127.91 µs 128.05 µs 128.20 µs] change: [-78.087% -78.034% -77.983%] (p = 0.00 < 0.05) Performance has improved. Found 11 outliers among 100 measurements (11.00%) 2 (2.00%) high mild 9 (9.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [118.06 µs 118.56 µs 119.10 µs] change: [-85.370% -85.315% -85.256%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high mild lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [124.19 µs 124.26 µs 124.32 µs] change: [-63.792% -63.699% -63.621%] (p = 0.00 < 0.05) Performance has improved. Found 17 outliers among 100 measurements (17.00%) 9 (9.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [111.69 µs 111.87 µs 112.07 µs] change: [-74.973% -74.920% -74.872%] (p = 0.00 < 0.05) Performance has improved. lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [127.74 µs 127.89 µs 128.07 µs] change: [-84.129% -84.095% -84.058%] (p = 0.00 < 0.05) Performance has improved. Found 11 outliers among 100 measurements (11.00%) 1 (1.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [116.19 µs 116.34 µs 116.51 µs] change: [-91.690% -91.672% -91.653%] (p = 0.00 < 0.05) Performance has improved. Found 4 outliers among 100 measurements (4.00%) 1 (1.00%) high mild 3 (3.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [124.18 µs 124.23 µs 124.29 µs] change: [-63.657% -63.606% -63.545%] (p = 0.00 < 0.05) Performance has improved. Found 10 outliers among 100 measurements (10.00%) 1 (1.00%) low severe 1 (1.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [111.52 µs 111.74 µs 111.95 µs] change: [-74.998% -74.946% -74.896%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [129.91 µs 130.18 µs 130.51 µs] change: [-88.921% -88.889% -88.859%] (p = 0.00 < 0.05) Performance has improved. Found 15 outliers among 100 measurements (15.00%) 15 (15.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [116.00 µs 116.09 µs 116.19 µs] change: [-95.111% -95.104% -95.095%] (p = 0.00 < 0.05) Performance has improved. Found 4 outliers among 100 measurements (4.00%) 2 (2.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [124.20 µs 124.31 µs 124.45 µs] change: [-63.756% -63.662% -63.556%] (p = 0.00 < 0.05) Performance has improved. Found 11 outliers among 100 measurements (11.00%) 3 (3.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0 time: [111.60 µs 111.77 µs 111.94 µs] change: [-74.990% -74.857% -74.664%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [137.66 µs 137.78 µs 137.93 µs] change: [-81.153% -81.119% -81.083%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 4 (4.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [124.95 µs 125.36 µs 125.78 µs] change: [-87.088% -87.055% -87.017%] (p = 0.00 < 0.05) Performance has improved. lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [131.52 µs 131.58 µs 131.66 µs] change: [-72.988% -72.939% -72.888%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 6 (6.00%) high mild 6 (6.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [118.03 µs 118.22 µs 118.44 µs] change: [-79.185% -79.138% -79.089%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [139.27 µs 139.37 µs 139.49 µs] change: [-86.483% -86.448% -86.421%] (p = 0.00 < 0.05) Performance has improved. Found 14 outliers among 100 measurements (14.00%) 10 (10.00%) high mild 4 (4.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [123.54 µs 123.65 µs 123.76 µs] change: [-92.400% -92.383% -92.365%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 2 (2.00%) high mild 6 (6.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [131.51 µs 131.61 µs 131.72 µs] change: [-73.003% -72.947% -72.901%] (p = 0.00 < 0.05) Performance has improved. Found 13 outliers among 100 measurements (13.00%) 2 (2.00%) low severe 5 (5.00%) high mild 6 (6.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [118.27 µs 118.47 µs 118.70 µs] change: [-79.156% -79.107% -79.060%] (p = 0.00 < 0.05) Performance has improved. Found 2 outliers among 100 measurements (2.00%) 1 (1.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [141.51 µs 141.68 µs 141.89 µs] change: [-90.749% -90.730% -90.712%] (p = 0.00 < 0.05) Performance has improved. Found 21 outliers among 100 measurements (21.00%) 2 (2.00%) low severe 3 (3.00%) high mild 16 (16.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [122.13 µs 122.30 µs 122.49 µs] change: [-95.563% -95.555% -95.548%] (p = 0.00 < 0.05) Performance has improved. Found 6 outliers among 100 measurements (6.00%) 5 (5.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [131.58 µs 131.68 µs 131.80 µs] change: [-72.976% -72.918% -72.855%] (p = 0.00 < 0.05) Performance has improved. Found 13 outliers among 100 measurements (13.00%) 5 (5.00%) high mild 8 (8.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 0.9, nulls: 0.1 time: [118.14 µs 118.35 µs 118.58 µs] change: [-79.153% -79.105% -79.050%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, all equally true/case_when 8192 rows: in_range: 1, nulls: 0 time: [127.98 µs 128.10 µs 128.25 µs] change: [-78.069% -78.024% -77.986%] (p = 0.00 < 0.05) Performance has improved. Found 11 outliers among 100 measurements (11.00%) 1 (1.00%) high mild 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, all equally true/case_when 8192 rows: in_range: 1, nulls: 0 time: [116.73 µs 116.90 µs 117.07 µs] change: [-85.570% -85.544% -85.516%] (p = 0.00 < 0.05) Performance has improved. Found 2 outliers among 100 measurements (2.00%) 1 (1.00%) high mild 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 1, nulls: 0 time: [124.02 µs 124.18 µs 124.31 µs] change: [-63.838% -63.708% -63.602%] (p = 0.00 < 0.05) Performance has improved. Found 14 outliers among 100 measurements (14.00%) 1 (1.00%) low severe 2 (2.00%) high mild 11 (11.00%) high severe lookup_table_case_when/case when utf8 -> i32, 5 entries, only first 2 are true/case_when 8192 rows: in_range: 1, nulls: 0 time: [111.48 µs 111.64 µs 111.83 µs] change: [-75.031% -74.957% -74.892%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe lookup_table_case_when/case when i32 -> utf8, 10 entries, all equally true/case_when 8192 rows: in_range: 1, nulls: 0 time: [127.48 µs 127.62 µs 127.80 µs] change: [-84.177% -84.141% -84.108%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 1 (1.00%) high mild 7 (7.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, all equally true/case_when 8192 rows: in_range: 1, nulls: 0 time: [115.30 µs 115.50 µs 115.67 µs] change: [-91.778% -91.756% -91.738%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high mild lookup_table_case_when/case when i32 -> utf8, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 1, nulls: 0 time: [124.17 µs 124.23 µs 124.30 µs] change: [-63.781% -63.665% -63.581%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 3 (3.00%) high mild 5 (5.00%) high severe lookup_table_case_when/case when utf8 -> i32, 10 entries, only first 2 are true/case_when 8192 rows: in_range: 1, nulls: 0 time: [111.50 µs 111.67 µs 111.87 µs] change: [-75.016% -74.963% -74.910%] (p = 0.00 < 0.05) Performance has improved. Found 3 outliers among 100 measurements (3.00%) 1 (1.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, all equally true/case_when 8192 rows: in_range: 1, nulls: 0 time: [129.18 µs 129.26 µs 129.36 µs] change: [-88.983% -88.953% -88.915%] (p = 0.00 < 0.05) Performance has improved. Found 10 outliers among 100 measurements (10.00%) 10 (10.00%) high severe lookup_table_case_when/case when utf8 -> i32, 20 entries, all equally true/case_when 8192 rows: in_range: 1, nulls: 0 time: [116.02 µs 116.22 µs 116.50 µs] change: [-95.113% -95.105% -95.096%] (p = 0.00 < 0.05) Performance has improved. Found 7 outliers among 100 measurements (7.00%) 5 (5.00%) high mild 2 (2.00%) high severe lookup_table_case_when/case when i32 -> utf8, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 1, nulls: 0 time: [124.01 µs 124.08 µs 124.15 µs] change: [-64.080% -63.983% -63.877%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high mild lookup_table_case_when/case when utf8 -> i32, 20 entries, only first 2 are true/case_when 8192 rows: in_range: 1, nulls: 0 time: [111.80 µs 111.97 µs 112.15 µs] change: [-74.884% -74.837% -74.784%] (p = 0.00 < 0.05) Performance has improved. Found 1 outliers among 100 measurements (1.00%) 1 (1.00%) high severe </details> --------- Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
1 parent dc6a712 commit d85595e

File tree

7 files changed

+1582
-33
lines changed

7 files changed

+1582
-33
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

datafusion/physical-expr/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ parking_lot = { workspace = true }
5555
paste = { workspace = true }
5656
petgraph = "0.8.3"
5757
tokio = { workspace = true }
58+
half = { workspace = true }
5859

5960
[dev-dependencies]
6061
arrow = { workspace = true, features = ["test_utils"] }

0 commit comments

Comments
 (0)