Adding upstream version 18.7.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
c4fc25c23b
commit
be16920347
96 changed files with 59037 additions and 52828 deletions
134
tests/fixtures/optimizer/simplify.sql
vendored
134
tests/fixtures/optimizer/simplify.sql
vendored
|
@ -680,3 +680,137 @@ CONCAT('a', x, y, 'bc');
|
|||
|
||||
'a' || 'b' || x;
|
||||
CONCAT('ab', x);
|
||||
|
||||
--------------------------------------
|
||||
-- DATE_TRUNC
|
||||
--------------------------------------
|
||||
DATE_TRUNC('year', x) = CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2022-01-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('quarter', x) = CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2021-04-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('month', x) = CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2021-02-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('week', x) = CAST('2021-01-04' AS DATE);
|
||||
x < CAST('2021-01-11' AS DATE) AND x >= CAST('2021-01-04' AS DATE);
|
||||
|
||||
DATE_TRUNC('day', x) = CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2021-01-02' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
CAST('2021-01-01' AS DATE) = DATE_TRUNC('year', x);
|
||||
x < CAST('2022-01-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
-- Always false, except for nulls
|
||||
DATE_TRUNC('quarter', x) = CAST('2021-01-02' AS DATE);
|
||||
DATE_TRUNC('quarter', x) = CAST('2021-01-02' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) <> CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2021-01-01' AS DATE) AND x >= CAST('2022-01-01' AS DATE);
|
||||
|
||||
-- Always true, except for nulls
|
||||
DATE_TRUNC('year', x) <> CAST('2021-01-02' AS DATE);
|
||||
DATE_TRUNC('year', x) <> CAST('2021-01-02' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) <= CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2022-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) <= CAST('2021-01-02' AS DATE);
|
||||
x < CAST('2022-01-01' AS DATE);
|
||||
|
||||
CAST('2021-01-01' AS DATE) >= DATE_TRUNC('year', x);
|
||||
x < CAST('2022-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) < CAST('2021-01-01' AS DATE);
|
||||
x < CAST('2021-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) < CAST('2021-01-02' AS DATE);
|
||||
x < CAST('2021-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) >= CAST('2021-01-01' AS DATE);
|
||||
x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) >= CAST('2021-01-02' AS DATE);
|
||||
x >= CAST('2022-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) > CAST('2021-01-01' AS DATE);
|
||||
x >= CAST('2022-01-01' AS DATE);
|
||||
|
||||
DATE_TRUNC('year', x) > CAST('2021-01-02' AS DATE);
|
||||
x >= CAST('2022-01-01' AS DATE);
|
||||
|
||||
-- right is not a date
|
||||
DATE_TRUNC('year', x) <> '2021-01-02';
|
||||
DATE_TRUNC('year', x) <> '2021-01-02';
|
||||
|
||||
DATE_TRUNC('year', x) IN (CAST('2021-01-01' AS DATE), CAST('2023-01-01' AS DATE));
|
||||
(x < CAST('2022-01-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE)) OR (x < CAST('2024-01-01' AS DATE) AND x >= CAST('2023-01-01' AS DATE));
|
||||
|
||||
-- merge ranges
|
||||
DATE_TRUNC('year', x) IN (CAST('2021-01-01' AS DATE), CAST('2022-01-01' AS DATE));
|
||||
x < CAST('2023-01-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
-- one of the values will always be false
|
||||
DATE_TRUNC('year', x) IN (CAST('2021-01-01' AS DATE), CAST('2022-01-02' AS DATE));
|
||||
x < CAST('2022-01-01' AS DATE) AND x >= CAST('2021-01-01' AS DATE);
|
||||
|
||||
TIMESTAMP_TRUNC(x, YEAR) = CAST('2021-01-01' AS DATETIME);
|
||||
x < CAST('2022-01-01 00:00:00' AS DATETIME) AND x >= CAST('2021-01-01 00:00:00' AS DATETIME);
|
||||
|
||||
--------------------------------------
|
||||
-- EQUALITY
|
||||
--------------------------------------
|
||||
x + 1 = 3;
|
||||
x = 2;
|
||||
|
||||
1 + x = 3;
|
||||
x = 2;
|
||||
|
||||
3 = x + 1;
|
||||
x = 2;
|
||||
|
||||
x - 1 = 3;
|
||||
x = 4;
|
||||
|
||||
x + 1 > 3;
|
||||
x > 2;
|
||||
|
||||
x + 1 >= 3;
|
||||
x >= 2;
|
||||
|
||||
x + 1 <= 3;
|
||||
x <= 2;
|
||||
|
||||
x + 1 <= 3;
|
||||
x <= 2;
|
||||
|
||||
x + 1 <> 3;
|
||||
x <> 2;
|
||||
|
||||
1 + x + 1 = 3 + 1;
|
||||
x = 2;
|
||||
|
||||
x - INTERVAL 1 DAY = CAST('2021-01-01' AS DATE);
|
||||
x = CAST('2021-01-02' AS DATE);
|
||||
|
||||
x - INTERVAL 1 HOUR > CAST('2021-01-01' AS DATETIME);
|
||||
x > CAST('2021-01-01 01:00:00' AS DATETIME);
|
||||
|
||||
DATETIME_ADD(x, 1, HOUR) < CAST('2021-01-01' AS DATETIME);
|
||||
x < CAST('2020-12-31 23:00:00' AS DATETIME);
|
||||
|
||||
DATETIME_SUB(x, 1, DAY) >= CAST('2021-01-01' AS DATETIME);
|
||||
x >= CAST('2021-01-02 00:00:00' AS DATETIME);
|
||||
|
||||
DATE_ADD(x, 1, DAY) <= CAST('2021-01-01' AS DATE);
|
||||
x <= CAST('2020-12-31' AS DATE);
|
||||
|
||||
DATE_SUB(x, 1, DAY) <> CAST('2021-01-01' AS DATE);
|
||||
x <> CAST('2021-01-02' AS DATE);
|
||||
|
||||
DATE_ADD(DATE_ADD(DATE_TRUNC('week', DATE_SUB(x, 1, DAY)), 1, DAY), 1, YEAR) < CAST('2021-01-08' AS DATE);
|
||||
x < CAST('2020-01-07' AS DATE);
|
||||
|
||||
x - INTERVAL '1' day = CAST(y AS DATE);
|
||||
x - INTERVAL '1' day = CAST(y AS DATE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue