104 lines
1.4 KiB
SQL
104 lines
1.4 KiB
SQL
# name: test/sql/aggregate/aggregates/test_bool.test
|
|
# description: Test Bool operator
|
|
# group: [aggregates]
|
|
|
|
statement ok
|
|
SET default_null_order='nulls_first';
|
|
|
|
# Corner Cases
|
|
statement error
|
|
select bool_or(0)
|
|
----
|
|
|
|
statement error
|
|
select bool_and(0)
|
|
----
|
|
|
|
query I
|
|
select bool_or(NULL)
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
select bool_and(NULL)
|
|
----
|
|
NULL
|
|
|
|
statement error
|
|
select bool_or()
|
|
----
|
|
|
|
statement error
|
|
select bool_and()
|
|
----
|
|
|
|
statement error
|
|
select bool_or(*)
|
|
----
|
|
|
|
statement error
|
|
select bool_and(*)
|
|
----
|
|
|
|
query I
|
|
SELECT bool_or(True) FROM range(100);
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT bool_and(True) FROM range(100);
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT bool_or(True) FROM range(100) tbl(i) WHERE 1=0;
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT bool_and(True) FROM range(100) tbl(i) WHERE 1=0;
|
|
----
|
|
NULL
|
|
|
|
statement ok
|
|
create table t (d date)
|
|
|
|
statement ok
|
|
insert into t values (DATE'2021-02-09'-1),(DATE'2021-02-09'+1),(NULL)
|
|
|
|
query II
|
|
select bool_or(d > '2021-02-09') AS or_result,
|
|
bool_and(d > '2021-02-09') AS and_result
|
|
from t;
|
|
----
|
|
1 0
|
|
|
|
query III
|
|
select d,bool_or(d > '2021-02-09') AS or_result,
|
|
bool_and(d > '2021-02-09') AS and_result
|
|
from t
|
|
group by d
|
|
order by d;
|
|
----
|
|
NULL NULL NULL
|
|
2021-02-08 0 0
|
|
2021-02-10 1 1
|
|
|
|
# Window Function
|
|
query I
|
|
select bool_or(d > '2021-02-09') over (partition by d)
|
|
from t order by d;
|
|
----
|
|
NULL
|
|
0
|
|
1
|
|
|
|
query I
|
|
select bool_and(d > '2021-02-09') over (partition by d)
|
|
from t order by d;
|
|
----
|
|
NULL
|
|
0
|
|
1
|
|
|