Commit Graph

58 Commits

Author SHA1 Message Date
Bennett Clement
5b4bdc8aa3 Fix .schema
- Add tests for .schema
- Make command line sql arguments to allow .commands
2024-07-22 16:00:41 +08:00
Bennett Clement
4590c3cc7c Support select <columns> for order by operation 2024-07-22 00:28:27 +08:00
Bennett Clement
2e0d4c6fdb Implement basic ORDER BY
- Only SELECT * is supported
- Only ASC is supported
2024-07-22 00:28:00 +08:00
JeanArhancet
50c12d24c8 feat: add length scalar function 2024-07-21 16:30:40 +02:00
JeanArhancet
569322446a feat: add round scalar function 2024-07-21 10:29:30 +02:00
JeanArhancet
fd5dd4f3e7 feat: add trim scalar function 2024-07-20 11:46:37 +02:00
Brayan Jules
73c8fc23ba implementation of scalar functions upper and lower 2024-07-19 00:38:12 -04:00
jussisaurio
70953a4fd0 Left join initial nested loop implementation 2024-07-18 10:55:27 +03:00
Brayan Jules
b7c08b8fd5 feat: abs func initial implementation 2024-07-17 22:55:41 -04:00
Pekka Enberg
ad70a240d4 Merge pull request #147 from benclmnt/feat/where-and 2024-07-16 21:35:01 +03:00
Bennett Clement
3c4f2b07e6 Respect jump_if_true in like implementation 2024-07-16 18:17:37 +08:00
Bennett Clement
6f983702c3 Refactor if/ifnot implementation 2024-07-16 16:36:30 +08:00
Bennett Clement
05558527af Implement like in where clause 2024-07-16 15:55:33 +08:00
Bennett Clement
2f738e0c8b Implement like function 2024-07-16 15:23:52 +08:00
Bennett Clement
b6c0bf57dc Fix conflicts 2024-07-16 13:16:24 +08:00
Pekka Enberg
190e5844e7 testing: select.test 2024-07-16 07:26:44 +03:00
Pekka Enberg
fbe71cc1d7 testing: pragma.test 2024-07-16 07:24:28 +03:00
Pekka Enberg
ce1efa35eb testing: agg-functions.test 2024-07-16 07:24:28 +03:00
Pekka Enberg
75e72a4926 testing: where.test 2024-07-16 07:24:28 +03:00
Pekka Enberg
9fc48315cc testing: coalesce.test 2024-07-16 07:20:35 +03:00
Pekka Enberg
04b96a3d6c testing: join.test 2024-07-16 07:20:34 +03:00
Bennett Clement
4d077cf3e5 Implement std::cmp::PartialOrd for OwnedValue 2024-07-16 08:32:14 +08:00
Bennett Clement
fdf77cee2b Merge branch 'main' of github.com:benclmnt/limbo into feat/where-and 2024-07-16 08:10:24 +08:00
Pere Diaz Bou
0a7d0588d7 core: implement AND and OR + complex conditions.
this also fixes NULL print to empty string

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-07-15 19:42:12 +02:00
Bennett Clement
f955187b70 Implement where and 2024-07-15 23:36:35 +08:00
jussisaurio
d1eded0e90 Test with sqlite3 executable in CI as well 2024-07-15 17:27:04 +03:00
Pekka Enberg
4751820b2b testing: Move test harness to tester.tcl
Move the generic test harness part into a separate file.
2024-07-15 08:19:21 +03:00
jussisaurio
ea793e4126 Inner join, table aliases, qualified column names 2024-07-14 20:09:40 +03:00
jussisaurio
851aea212d add coalesce(), refactor/rename add_label() 2024-07-13 23:03:56 +03:00
Ramkarthik Krishnamurthy
59b1852d41 Adds test for string_agg 2024-07-13 10:59:46 +05:30
Ramkarthik Krishnamurthy
a303e6ad96 Implements string_agg and extends group_concat to work with column delimiters 2024-07-13 02:13:28 +05:30
Ramkarthik Krishnamurthy
9268560a51 Implements group concat aggregate function 2024-07-13 00:55:40 +05:30
Pekka Enberg
55adf93282 Fix broken WHERE clause test case
The broken test case does not pass on SQLite so it's wrong. I suspect
the test was written before commit e377e09 ("Fix avg(), total(), count()
default value on empty set") when Limbo showed this behavior.
2024-07-12 08:22:13 +03:00
jussisaurio
1b0aa568a4 Basic where clause support 2024-07-12 00:26:32 +03:00
Bennett Clement
8a9eb74f9b Implement total() aggregation function
- Returns 0.0 when called on non integer / non float columns
- Always returns floating point number
- fix: default for sum() should be NULL when there is no non-NULL row
  per docs
2024-07-11 23:40:55 +08:00
Pere Diaz Bou
538d624770 core: apply Real affinity on columns stored as int
Values in sqlite3, as expected, can be stored in different formats to
optimize disk usage. In this case, a 79.0 float will be transformed to a
u8.

sqlite3 deals with this by adding a RealAffinity op after each column
that might need it. Therefore, in this pr we do exactly that :).

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-07-10 21:21:49 +02:00
Pere Diaz Bou
90a4fc6bb8 test: cross-join-specific-columns
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-07-09 18:08:16 +02:00
Pere Diaz Bou
e0431fdde1 testing: update testing with products table and cross join test
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-07-09 18:08:16 +02:00
mazchew
fc0c3d539a add min aggregate function
add changes for all.test
2024-07-09 03:14:02 +08:00
mazchew
3f339d07d3 add max aggregate function 2024-07-09 02:45:34 +08:00
Vivek Khatri
fe7c1b5b1d Merge branch 'main' into add-agg-fn-count 2024-07-08 13:58:14 +05:30
Vivek
94358dc665 Add aggregate fn: count 2024-07-08 13:55:06 +05:30
Piotr Sarna
9376d68f73 testing: add a test for limit 0 2024-07-06 10:58:19 +02:00
Pekka Enberg
5b12e7af78 Add TCL tests for avg() and sum() 2024-07-03 11:50:22 +03:00
Pekka Enberg
106fe5f259 Generate testing.db with age column 2024-06-30 19:24:38 +03:00
Pekka Enberg
962ead96fc Use Faker API in gen-database.py to generate random integer 2024-06-30 19:24:13 +03:00
Pekka Enberg
1573844680 Make all.test exit with failure if test fails 2024-06-30 17:35:05 +03:00
Pere Diaz Bou
1419ae93bc gen-database: add age to user table to test agg
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-06-30 12:48:19 +02:00
Pekka Enberg
650288e786 Switch testing.db to WAL mode 2024-06-29 17:36:58 +03:00
Pekka Enberg
cc101b1b00 Use larger and more realistic database for testing 2024-06-29 10:03:11 +03:00