Skip to content

Commit dd618de

Browse files
committed
test: add test for View
1 parent a754969 commit dd618de

File tree

11 files changed

+209
-92
lines changed

11 files changed

+209
-92
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,11 @@ let fnck_sql = DataBaseBuilder::path("./data")
185185
- Create
186186
- [x] Table
187187
- [x] Index: Unique\Normal\Composite
188+
- [x] View
188189
- Drop
189190
- [x] Table
190191
- [ ] Index
192+
- [ ] View
191193
- Alert
192194
- [x] Add Column
193195
- [x] Drop Column

src/binder/select.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ impl<'a: 'b, 'b, T: Transaction> Binder<'a, 'b, T> {
426426
SelectItem::UnnamedExpr(expr) => select_items.push(self.bind_expr(expr)?),
427427
SelectItem::ExprWithAlias { expr, alias } => {
428428
let expr = self.bind_expr(expr)?;
429-
let alias_name = alias.to_string();
429+
let alias_name = alias.value.to_lowercase();
430430

431431
self.context
432432
.add_alias(None, alias_name.clone(), expr.clone());

tests/slt/crdb/delete.slt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,31 @@ SELECT * FROM kv
2424
5 6
2525
7 8
2626

27-
# TODO: View
27+
# TODO: Drop View
2828
# statement ok
2929
# drop view if exists kview
3030

31-
# statement ok
32-
# CREATE VIEW kview AS SELECT k,v FROM kv
31+
statement ok
32+
CREATE VIEW kview AS SELECT k,v FROM kv
3333

34-
# query II
35-
# SELECT * FROM kview
36-
# ----
37-
# 1 2
38-
# 3 4
39-
# 5 6
40-
# 7 8
34+
query II
35+
SELECT * FROM kview
36+
----
37+
1 2
38+
3 4
39+
5 6
40+
7 8
4141

42-
# statement error 1002
43-
# DELETE FROM kview
42+
statement error
43+
DELETE FROM kview
4444

45-
# query II
46-
# SELECT * FROM kview
47-
# ----
48-
# 1 2
49-
# 3 4
50-
# 5 6
51-
# 7 8
45+
query II
46+
SELECT * FROM kview
47+
----
48+
1 2
49+
3 4
50+
5 6
51+
7 8
5252

5353
statement ok
5454
DELETE FROM kv WHERE k=3 OR v=6
@@ -167,7 +167,7 @@ statement ok
167167
drop table if exists family
168168

169169
statement ok
170-
CREATE TABLE family ( x INT PRIMARY KEY, y INT)
170+
CREATE TABLE family ( x INT PRIMARY KEY, y INT)
171171

172172
statement ok
173173
INSERT INTO family VALUES (1, 1), (2, 2), (3, 3)

tests/slt/sql_2016/F031_02.slt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# F031-02: CREATE VIEW statement
22

3-
# TODO: Support `VIEW`
4-
53
statement ok
64
CREATE TABLE TABLE_F031_02_01_01 ( ID INT PRIMARY KEY, A INTEGER );
75

8-
# CREATE VIEW VIEW_F031_02_01_01 AS SELECT A FROM TABLE_F031_02_01_01
6+
statement ok
7+
CREATE VIEW VIEW_F031_02_01_01 AS SELECT A FROM TABLE_F031_02_01_01

tests/slt/sql_2016/F031_16.slt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# F031-16: DROP VIEW statement: RESTRICT clause
22

3-
# TODO: Support `VIEW` & `CREATE VIEW` & `DROP VIEW`
3+
# TODO: Support `DROP VIEW`
44

55
statement ok
66
CREATE TABLE TABLE_F031_16_01_01 ( ID INT PRIMARY KEY, A INTEGER );
77

8-
# CREATE VIEW VIEW_F031_16_01_01 AS SELECT A FROM TABLE_F031_16_01_01;
8+
statement ok
9+
CREATE VIEW VIEW_F031_16_01_01 AS SELECT A FROM TABLE_F031_16_01_01;
910

1011
# DROP VIEW VIEW_F031_16_01_01

tests/slt/sql_2016/F081.slt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# F081: UNION and EXCEPT in views
22

3-
# TODO: VIEW & (UNION & EXCEPT with VIEW)
4-
53
statement ok
64
CREATE TABLE TABLE_F081_01_011 ( ID INT PRIMARY KEY, A INTEGER );
75

86
statement ok
97
CREATE TABLE TABLE_F081_01_012 ( ID INT PRIMARY KEY, A INTEGER );
108

9+
# TODO: Except
10+
# statement ok
1111
# CREATE VIEW VIEW_F081_01_01 AS SELECT A FROM TABLE_F081_01_011 EXCEPT SELECT A FROM TABLE_F081_01_012
1212

1313
statement ok
@@ -16,12 +16,14 @@ CREATE TABLE TABLE_F081_01_021 ( ID INT PRIMARY KEY, A INTEGER );
1616
statement ok
1717
CREATE TABLE TABLE_F081_01_022 ( ID INT PRIMARY KEY, A INTEGER );
1818

19-
# CREATE VIEW VIEW_F081_01_02 AS SELECT A FROM TABLE_F081_01_021 UNION ALL SELECT A FROM TABLE_F081_01_022
19+
statement ok
20+
CREATE VIEW VIEW_F081_01_02 AS SELECT A FROM TABLE_F081_01_021 UNION ALL SELECT A FROM TABLE_F081_01_022
2021

2122
statement ok
2223
CREATE TABLE TABLE_F081_01_031 ( ID INT PRIMARY KEY, A INTEGER );
2324

2425
statement ok
2526
CREATE TABLE TABLE_F081_01_032 ( ID INT PRIMARY KEY, A INTEGER );
2627

27-
# CREATE VIEW VIEW_F081_01_03 AS SELECT A FROM TABLE_F081_01_031 UNION SELECT A FROM TABLE_F081_01_032
28+
statement ok
29+
CREATE VIEW VIEW_F081_01_03 AS SELECT A FROM TABLE_F081_01_031 UNION SELECT A FROM TABLE_F081_01_032

tests/slt/sql_2016/F131_01.slt

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,55 @@
11
# F131-01: WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views
22

3-
# TODO: WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views
4-
53
statement ok
64
CREATE TABLE TABLE_F131_01_01_01 ( ID INT PRIMARY KEY, A INTEGER );
75

8-
# CREATE VIEW VIEW_F131_01_01_01 AS SELECT A FROM TABLE_F131_01_01_01 GROUP BY A;
6+
statement ok
7+
CREATE VIEW VIEW_F131_01_01_01 AS SELECT A FROM TABLE_F131_01_01_01 GROUP BY A;
98

10-
# SELECT A FROM VIEW_F131_01_01_01
9+
query I
10+
SELECT A FROM VIEW_F131_01_01_01
1111

1212
statement ok
1313
CREATE TABLE TABLE_F131_01_01_02 ( ID INT PRIMARY KEY, A INTEGER );
1414

15-
# CREATE VIEW VIEW_F131_01_01_02 AS SELECT A FROM TABLE_F131_01_01_02 GROUP BY A;
15+
statement ok
16+
CREATE VIEW VIEW_F131_01_01_02 AS SELECT A FROM TABLE_F131_01_01_02 GROUP BY A;
1617

17-
# SELECT A FROM VIEW_F131_01_01_02 GROUP BY A
18+
query I
19+
SELECT A FROM VIEW_F131_01_01_02 GROUP BY A
1820

1921
statement ok
2022
CREATE TABLE TABLE_F131_01_01_03 ( ID INT PRIMARY KEY, A INTEGER );
2123

22-
# CREATE VIEW VIEW_F131_01_01_03 AS SELECT A FROM TABLE_F131_01_01_03 GROUP BY A;
24+
statement ok
25+
CREATE VIEW VIEW_F131_01_01_03 AS SELECT A FROM TABLE_F131_01_01_03 GROUP BY A;
2326

24-
# SELECT A FROM VIEW_F131_01_01_03 GROUP BY A HAVING A = 2
27+
query I
28+
SELECT A FROM VIEW_F131_01_01_03 GROUP BY A HAVING A = 2
2529

2630
statement ok
2731
CREATE TABLE TABLE_F131_01_01_04 ( ID INT PRIMARY KEY, A INTEGER );
2832

29-
# CREATE VIEW VIEW_F131_01_01_04 AS SELECT A FROM TABLE_F131_01_01_04 GROUP BY A;
33+
statement ok
34+
CREATE VIEW VIEW_F131_01_01_04 AS SELECT A FROM TABLE_F131_01_01_04 GROUP BY A;
3035

31-
# SELECT A FROM VIEW_F131_01_01_04 WHERE A = 1
36+
query I
37+
SELECT A FROM VIEW_F131_01_01_04 WHERE A = 1
3238

3339
statement ok
3440
CREATE TABLE TABLE_F131_01_01_05 ( ID INT PRIMARY KEY, A INTEGER );
3541

36-
# CREATE VIEW VIEW_F131_01_01_05 AS SELECT A FROM TABLE_F131_01_01_05 GROUP BY A;
42+
statement ok
43+
CREATE VIEW VIEW_F131_01_01_05 AS SELECT A FROM TABLE_F131_01_01_05 GROUP BY A;
3744

38-
# SELECT A FROM VIEW_F131_01_01_05 WHERE A = 1 GROUP BY A
45+
query I
46+
SELECT A FROM VIEW_F131_01_01_05 WHERE A = 1 GROUP BY A
3947

4048
statement ok
4149
CREATE TABLE TABLE_F131_01_01_06 ( ID INT PRIMARY KEY, A INTEGER );
4250

43-
# CREATE VIEW VIEW_F131_01_01_06 AS SELECT A FROM TABLE_F131_01_01_06 GROUP BY A;
51+
statement ok
52+
CREATE VIEW VIEW_F131_01_01_06 AS SELECT A FROM TABLE_F131_01_01_06 GROUP BY A;
4453

45-
# SELECT A FROM VIEW_F131_01_01_06 WHERE A = 1 GROUP BY A HAVING A = 2
54+
query I
55+
SELECT A FROM VIEW_F131_01_01_06 WHERE A = 1 GROUP BY A HAVING A = 2

tests/slt/sql_2016/F131_02.slt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# F131-02: Multiple tables supported in queries with grouped views
22

3-
# TODO Multiple tables supported in queries with grouped views
4-
53
statement ok
64
CREATE TABLE TABLE_F131_02_01_011 ( ID INT PRIMARY KEY, A INTEGER );
75

86
statement ok
97
CREATE TABLE TABLE_F131_02_01_012 ( ID INT PRIMARY KEY, A INTEGER );
108

11-
# CREATE VIEW VIEW_F131_02_01_01 AS SELECT A FROM TABLE_F131_02_01_011 GROUP BY A;
9+
statement ok
10+
CREATE VIEW VIEW_F131_02_01_01 AS SELECT A FROM TABLE_F131_02_01_011 GROUP BY A;
1211

13-
# SELECT A FROM VIEW_F131_02_01_01 JOIN TABLE_F131_02_01_012 USING ( A )
12+
query I
13+
SELECT A FROM VIEW_F131_02_01_01 JOIN TABLE_F131_02_01_012 USING ( A )

tests/slt/sql_2016/F131_03.slt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
# F131-03: Set functions supported in queries with grouped views
22

3-
# TODO: Set functions supported in queries with grouped views
4-
53
statement ok
64
CREATE TABLE TABLE_F131_03_01_011 ( ID INT PRIMARY KEY, A INTEGER, B INTEGER );
75

8-
# CREATE VIEW VIEW_F131_03_01_01 AS SELECT A, MIN ( B ) AS C FROM TABLE_F131_03_01_011 GROUP BY A;
6+
statement ok
7+
CREATE VIEW VIEW_F131_03_01_01 AS SELECT A, MIN ( B ) AS C FROM TABLE_F131_03_01_011 GROUP BY A;
98

10-
# SELECT SUM ( C ) FROM VIEW_F131_03_01_01
9+
query I
10+
SELECT SUM ( C ) FROM VIEW_F131_03_01_01
11+
----
12+
null
1113

1214
statement ok
1315
CREATE TABLE TABLE_F131_03_01_021 ( ID INT PRIMARY KEY, A INTEGER, B INTEGER );
1416

15-
# CREATE VIEW VIEW_F131_03_01_02 AS SELECT A, MIN ( B ) AS C FROM TABLE_F131_03_01_021 GROUP BY A;
17+
statement ok
18+
CREATE VIEW VIEW_F131_03_01_02 AS SELECT A, MIN ( B ) AS C FROM TABLE_F131_03_01_021 GROUP BY A;
1619

17-
# SELECT SUM ( C ) FROM VIEW_F131_03_01_02 GROUP BY A
20+
query I
21+
SELECT A, SUM ( C ) FROM VIEW_F131_03_01_02 GROUP BY A
22+
----

0 commit comments

Comments
 (0)