@@ -5,48 +5,56 @@ class TestPRQL(Validator):
55 dialect = "prql"
66
77 def test_prql (self ):
8- self .validate_identity ("FROM x" , "SELECT * FROM x" )
9- self .validate_identity ("FROM x DERIVE a + 1" , "SELECT *, a + 1 FROM x" )
10- self .validate_identity ("FROM x DERIVE x = a + 1" , "SELECT *, a + 1 AS x FROM x" )
11- self .validate_identity ("FROM x DERIVE {a + 1}" , "SELECT *, a + 1 FROM x" )
12- self .validate_identity ("FROM x DERIVE {x = a + 1, b}" , "SELECT *, a + 1 AS x, b FROM x" )
8+ self .validate_identity ("from x" , "SELECT * FROM x" )
9+ self .validate_identity ("from x derive a + 1" , "SELECT *, a + 1 FROM x" )
10+ self .validate_identity ("from x derive x = a + 1" , "SELECT *, a + 1 AS x FROM x" )
11+ self .validate_identity ("from x derive {a + 1}" , "SELECT *, a + 1 FROM x" )
12+ self .validate_identity ("from x derive {x = a + 1, b}" , "SELECT *, a + 1 AS x, b FROM x" )
1313 self .validate_identity (
14- "FROM x DERIVE {x = a + 1, b} SELECT {y = x, 2}" , "SELECT a + 1 AS y, 2 FROM x"
14+ "from x derive {x = a + 1, b} select {y = x, 2}" , "SELECT a + 1 AS y, 2 FROM x"
1515 )
16- self .validate_identity ("FROM x TAKE 10" , "SELECT * FROM x LIMIT 10" )
17- self .validate_identity ("FROM x TAKE 10 TAKE 5" , "SELECT * FROM x LIMIT 5" )
18- self .validate_identity ("FROM x FILTER age > 25" , "SELECT * FROM x WHERE age > 25" )
16+ self .validate_identity ("from x take 10" , "SELECT * FROM x LIMIT 10" )
17+ self .validate_identity ("from x take 10 take 5" , "SELECT * FROM x LIMIT 5" )
18+ self .validate_identity ("from x filter age > 25" , "SELECT * FROM x WHERE age > 25" )
1919 self .validate_identity (
20- "FROM x DERIVE {x = a + 1, b} FILTER age > 25" ,
20+ "from x derive {x = a + 1, b} filter age > 25" ,
2121 "SELECT *, a + 1 AS x, b FROM x WHERE age > 25" ,
2222 )
23- self .validate_identity ("FROM x FILTER dept != 'IT'" , "SELECT * FROM x WHERE dept <> 'IT'" )
23+ self .validate_identity ("from x filter dept != 'IT'" , "SELECT * FROM x WHERE dept <> 'IT'" )
2424 self .validate_identity (
25- "FROM x FILTER p == 'product' SELECT { a, b }" , "SELECT a, b FROM x WHERE p = 'product'"
25+ "from x filter p == 'product' select { a, b }" , "SELECT a, b FROM x WHERE p = 'product'"
2626 )
2727 self .validate_identity (
28- "FROM x FILTER age > 25 FILTER age < 27" , "SELECT * FROM x WHERE age > 25 AND age < 27"
28+ "from x filter age > 25 filter age < 27" , "SELECT * FROM x WHERE age > 25 AND age < 27"
2929 )
3030 self .validate_identity (
31- "FROM x FILTER (age > 25 && age < 27)" , "SELECT * FROM x WHERE (age > 25 AND age < 27)"
31+ "from x filter (age > 25 && age < 27)" , "SELECT * FROM x WHERE (age > 25 AND age < 27)"
3232 )
3333 self .validate_identity (
34- "FROM x FILTER (age > 25 || age < 27)" , "SELECT * FROM x WHERE (age > 25 OR age < 27)"
34+ "from x filter (age > 25 || age < 27)" , "SELECT * FROM x WHERE (age > 25 OR age < 27)"
3535 )
3636 self .validate_identity (
37- "FROM x FILTER (age > 25 || age < 22) FILTER age > 26 FILTER age < 27" ,
37+ "from x filter (age > 25 || age < 22) filter age > 26 filter age < 27" ,
3838 "SELECT * FROM x WHERE ((age > 25 OR age < 22) AND age > 26) AND age < 27" ,
3939 )
4040 self .validate_identity (
41- "FROM x SORT age" ,
41+ "from x sort age" ,
4242 "SELECT * FROM x ORDER BY age" ,
4343 )
4444 self .validate_identity (
45- "FROM x SORT {age, name}" ,
45+ "from x sort {-age}" ,
46+ "SELECT * FROM x ORDER BY age DESC" ,
47+ )
48+ self .validate_identity (
49+ "from x sort {age, name}" ,
4650 "SELECT * FROM x ORDER BY age, name" ,
4751 )
48- self .validate_identity ("FROM x APPEND y" , "SELECT * FROM x UNION ALL SELECT * FROM y" )
49- self .validate_identity ("FROM x REMOVE y" , "SELECT * FROM x EXCEPT ALL SELECT * FROM y" )
5052 self .validate_identity (
51- "FROM x INTERSECT y" , "SELECT * FROM x INTERSECT ALL SELECT * FROM y"
53+ "from x sort {-age, +name}" ,
54+ "SELECT * FROM x ORDER BY age DESC, name" ,
55+ )
56+ self .validate_identity ("from x append y" , "SELECT * FROM x UNION ALL SELECT * FROM y" )
57+ self .validate_identity ("from x remove y" , "SELECT * FROM x EXCEPT ALL SELECT * FROM y" )
58+ self .validate_identity (
59+ "from x intersect y" , "SELECT * FROM x INTERSECT ALL SELECT * FROM y"
5260 )
0 commit comments