Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(common): support NULLS {FIRST | LAST} #8485

Merged
merged 34 commits into from
Mar 19, 2023
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
023ea26
support switching nulls smallest/largest during memcmp serialization
stdrc Mar 11, 2023
da141ce
basic support for nulls first/last done, batch queries now work
stdrc Mar 11, 2023
9abed57
Merge branch 'main' into rc/nulls-first-last-new
stdrc Mar 16, 2023
6ffe60f
appease the typo checker
stdrc Mar 16, 2023
3fee6c0
Merge branch 'main' into rc/nulls-first-last-new
stdrc Mar 16, 2023
939f732
support nulls first/last for batch string/array_agg
stdrc Mar 16, 2023
cd8c610
move `ScalarImpl::encoding_data_size` to `memcmp_encoding::calculate_…
stdrc Mar 16, 2023
9752ea8
remove unused import
stdrc Mar 16, 2023
302825b
remove use of Direction from row_seq_scan
stdrc Mar 16, 2023
244ed10
remove `derive_order_type_from_order_by_expr`
stdrc Mar 16, 2023
326605f
remove use of `Direction` from describe.rs
stdrc Mar 16, 2023
ebe113e
remove use of Direction from backfill.rs
stdrc Mar 16, 2023
afdb4fa
fix
stdrc Mar 16, 2023
0cbb4eb
unittests now compile
stdrc Mar 16, 2023
7ff29de
move `Deserialize::new` call inside `calculate_encoded_size`
stdrc Mar 16, 2023
cd2b556
fix `output_requires_order_on_group_keys`
stdrc Mar 16, 2023
52f92ff
enhance unit tests for memcmp encoding
stdrc Mar 16, 2023
126619c
add unit test for `OrderType`
stdrc Mar 16, 2023
a039f2f
merge `encode_row` and `encode_row_ref`
stdrc Mar 16, 2023
382d41c
add unit tests
stdrc Mar 16, 2023
657c998
minor
stdrc Mar 16, 2023
0c41112
update dashbaord things
stdrc Mar 16, 2023
2eba1a6
fix `test_describe_handler`
stdrc Mar 16, 2023
e20d587
fix typo
stdrc Mar 16, 2023
41cfe77
add e2e tests for `nulls first/last`
stdrc Mar 16, 2023
6961ebc
update planner tests
stdrc Mar 16, 2023
12ca4fa
fix format
stdrc Mar 16, 2023
d57bf4d
final clean
stdrc Mar 16, 2023
b862295
fix `show.slt`
stdrc Mar 17, 2023
7db1dad
hide `NULLS FIRST|LAST` if it's default
stdrc Mar 18, 2023
8e552b5
update planner tests
stdrc Mar 18, 2023
d98a967
Merge branch 'main' into rc/nulls-first-last-new
stdrc Mar 18, 2023
1e84035
hide `Direction` and `NullsAre`
stdrc Mar 18, 2023
b32c2a5
rename vars
stdrc Mar 19, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 46 additions & 5 deletions dashboard/proto/gen/common.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

128 changes: 0 additions & 128 deletions dashboard/proto/gen/order.ts

This file was deleted.

23 changes: 13 additions & 10 deletions e2e_test/batch/aggregate/array_agg.slt.part
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ statement ok
SET RW_IMPLICIT_FLUSH TO true;

statement ok
create table t(v1 varchar, v2 int, v3 int)
create table t(v1 varchar, v2 int, v3 int);

query T
select array_agg(v1) from t;
Expand All @@ -18,10 +18,7 @@ select array_agg(v1) from t;
{NULL}

statement ok
delete from t;

statement ok
insert into t values ('aaa', 1, 1), ('bbb', 0, 2), ('ccc', 0, 5), ('ddd', 1, 4)
insert into t values ('aaa', 1, 1), ('bbb', 0, 2), ('ccc', 0, 5), ('ddd', 1, 4);

query T
select b from (select unnest(a) from (select array_agg(v3) as v3_arr from t) g(a)) p(b) order by b;
Expand All @@ -30,16 +27,22 @@ select b from (select unnest(a) from (select array_agg(v3) as v3_arr from t) g(a
2
4
5
NULL

query T
select array_agg(v1 order by v3 asc nulls first) from t;
----
{NULL,aaa,bbb,ddd,ccc}

query T
select array_agg(v1 order by v3 desc) from t
select array_agg(v1 order by v3 desc) from t;
----
{ccc,ddd,bbb,aaa}
{NULL,ccc,ddd,bbb,aaa}

query T
select array_agg(v1 order by v2 asc, v3 desc) from t
select array_agg(v1 order by v2 asc nulls last, v3 desc) from t;
----
{ccc,bbb,ddd,aaa}
{ccc,bbb,ddd,aaa,NULL}

statement ok
drop table t
drop table t;
59 changes: 53 additions & 6 deletions e2e_test/batch/basic/index.slt.part
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,23 @@ statement ok
create index idx2 on t1(v2);

statement ok
insert into t1 values(1, 2),(3,4),(5,6);
insert into t1 values (1, 2), (3, 4), (5, 6);

statement ok
explain select v1,v2 from t1 where v1 = 1;
explain select v1, v2 from t1 where v1 = 1;

query II
select v1,v2 from t1 where v1 = 1;
select v1, v2 from t1 where v1 = 1;
----
1 2

query II
select v1,v2 from t1 where v2 = 4;
select v1, v2 from t1 where v2 = 4;
----
3 4

query II
select v1,v2 from t1 where v1 = 1 or v2 = 4 order by v1, v2;
select v1, v2 from t1 where v1 = 1 or v2 = 4 order by v1, v2;
----
1 2
3 4
Expand All @@ -36,10 +36,57 @@ statement ok
delete from t1 where v1 = 1;

query II
select v1,v2 from t1 order by v1, v2;
select v1, v2 from t1 order by v1, v2;
----
3 4
5 6

statement ok
insert into t1 values (NULL, 5);

statement ok
create index idx3 on t1(v1 desc);

statement ok
create index idx4 on t1(v1 nulls first);

statement ok
create index idx5 on t1(v1 desc nulls last);

query II
select v1, v2 from t1 order by v1;
----
3 4
5 6
NULL 5

query II
select v1, v2 from t1 order by v1 desc;
----
NULL 5
5 6
3 4

query II
select v1, v2 from t1 order by v1 asc nulls first;
----
NULL 5
3 4
5 6

query II
select v1, v2 from t1 order by v1 desc nulls last;
----
5 6
3 4
NULL 5

query II
select v1, v2 from t1 order by v1 desc nulls first;
----
NULL 5
5 6
3 4

statement ok
drop table t1;
Loading