Jussi Saurio
726bc24e78
Support referring to rowid as _rowid_ or oid
2025-09-24 09:17:28 +03:00
bit-aloo
881b986302
improve the limi exprs test with foreach block
2025-08-26 19:56:25 +05:30
bit-aloo
05267454dc
remove redundant step during limit/offset evaluation and add test coverage most of the datatypes and some expression
2025-08-26 19:56:25 +05:30
bit-aloo
26d71603ac
add a test to test limit expressiveness
2025-08-26 19:56:12 +05:30
Jussi Saurio
86b1232268
chore: enable indexes by default
2025-08-01 15:44:56 +03:00
Jussi Saurio
7259751eba
Merge 'Support the OFFSET clause for Compound select' from meteorgan
...
Closes #2376
2025-08-01 10:18:13 +03:00
meteorgan
6262ff4267
support offset for values
2025-08-01 00:46:46 +08:00
Glauber Costa
9d41fa4489
implement IN patterns for non-conditional SELECT queries
...
Extracts the core logic of IN from the conditional version, and uses the
conditional metadata to determine the jump. Then Uses the AddImm
operator we just added to force the integer conversion at the end (like
SQLite does).
2025-07-31 08:11:41 -05:00
meteorgan
a0f5554b08
support the OFFSET clause for Compound select
2025-07-31 17:43:54 +08:00
meteorgan
aa69b279c3
support limit
2025-07-28 00:58:20 +08:00
meteorgan
ea660b947d
support VALUES clauses for compound select
2025-07-27 19:13:23 +08:00
Glauber Costa
b5927dcfd5
support doubly qualified identifiers
2025-07-25 14:52:45 -05:00
Jussi Saurio
022f679fab
chore: make every CREATE TABLE stmt in entire repo have 1 space after tbl name
...
`BTreeTable::to_sql` makes us incompatible with SQLite by losing e.g. the original whitespace provided during the CREATE TABLE command.
For now let's fix our tests by regex-replacing every CREATE TABLE in
the entire repo to have exactly 1 space after the table name in the
CREATE TABLE statement.
2025-07-22 11:35:21 +03:00
Glauber Costa
cbdd5c5fc7
improve handling of double quotes
...
I ended up hitting #1974 today and wanted to fix it. I worked with
Claude to generate a more comprehensive set of queries that could fail
aside from just the insert query described in the issue. He got most of
them right - lots of cases were indeed failing. The ones that were
gibberish, he told me I was absolutely right for pointing out they were
bad.
But alas. With the test cases generated, we can work on fixing it. The
place where the assertion was hit, all we need to do there is return
true (but we assert that this is indeed a string literal, it shouldn't
be anything else at this point).
There are then just a couple of places where we need to make sure we
handle double quotes correctly. We already tested for single quotes in a
couple of places, but never for double quotes.
There is one funny corner case where you can just select "col" from tbl,
and if there is no column "col" on the table, that is treated as a
string literal. We handle that too.
Fixes #1974
2025-07-18 10:39:02 -05:00
Nikita Sivukhin
9a347d8852
add simple tcl test
2025-07-14 13:01:15 +04:00
Mikaël Francoeur
89b0574fac
return error if no tables
2025-07-09 14:58:24 -04:00
meteorgan
829e44c539
fix test data
2025-07-08 22:57:20 +08:00
meteorgan
6768f073c8
add tests for except operator
2025-07-08 22:57:20 +08:00
Pekka Enberg
9c1b7897ac
Fix URLs to point to github.com/tursodatabase/turso
2025-06-30 11:23:53 +03:00
meteorgan
2c4847210f
ajust code to accommodate index_experimental feature
2025-06-27 11:50:19 +08:00
meteorgan
41def8895f
make intersect in compound work with insert
2025-06-27 11:50:19 +08:00
meteorgan
1fcc2ddd90
support limit
2025-06-27 11:50:19 +08:00
meteorgan
d4789d0a05
add tests
2025-06-27 11:50:19 +08:00
Pere Diaz Bou
814f68043d
filter out sqlite3 executable too
2025-06-17 19:33:23 +02:00
Pere Diaz Bou
032337745b
disable more tests without index
2025-06-17 19:33:23 +02:00
Jussi Saurio
d893a55c55
UNION
2025-05-25 21:23:04 +03:00
Jussi Saurio
08bda9cc58
UNION ALL
2025-05-24 13:12:41 +03:00
Anton Harniakou
3c06ddadde
Parse hex integers in unary operators
...
Unary operators ~ and - should work with hex integers
2025-04-14 21:13:39 +03:00
Anton Harniakou
499d9b8d45
Add integration tests for hex numbers
2025-04-13 21:50:48 +03:00
jachewz
12ae07874e
fmt inf float str as "Inf"/"-Inf"
2025-04-08 23:33:34 +10:00
Pekka Enberg
ec742a8468
Merge 'Fix numeric conversion in SELECT -'e'' from Diego Reis
...
closes #1157
Closes #1167
2025-03-27 08:58:57 +02:00
krishvishal
1660ae5542
missed adding _ and a space.
2025-03-25 12:04:48 +05:30
krishvishal
785be8479f
Fix a fuzzer failure and add tcl test covering the failure
2025-03-25 11:43:51 +05:30
krishvishal
f12e3a6993
For a few TCL tests more.
2025-03-25 10:28:48 +05:30
krishvishal
a8129d5e58
Add TCL tests for compute_shl
2025-03-25 10:26:08 +05:30
Diego Reis
f499f756fb
core/util: Fix invalid numeric parsing
...
To see details: https://github.com/tursodatabase/limbo/issues/1157
2025-03-24 20:21:09 -03:00
Jussi Saurio
ec3ae2ace6
Fix remainder panic on zero right-hand-side
2025-02-17 13:09:33 +02:00
Jussi Saurio
12242ad359
Add more TCL tests for exprs in select/where positions
2025-02-17 07:43:09 +02:00
Nikita Sivukhin
0595e7308d
add TCL "CASE ... WHEN" test for null evaluation result
2025-02-09 21:53:50 +04:00
Nikita Sivukhin
8d513b229f
add simple tcl tests
2025-02-02 19:43:13 +04:00
Nikita Sivukhin
1bd8b4ef7a
pass null_eq flag for instructions generated for expressions (not in the conditions)
2025-02-02 02:51:51 +04:00
Kould
1bf651bd37
chore: rollback using rowid(sqlite3 unsupported)
2025-01-14 22:56:49 +08:00
Kould
5305a9d0fd
feat: support keyword rowid
2025-01-14 22:41:40 +08:00
Jussi Saurio
1bcdf99eab
core/optimizer: do expression rewriting on all expressions
2025-01-10 10:04:07 +02:00
psvri
2d84956fda
Fix quote escape in literals
2025-01-05 01:35:29 +05:30
Kacper Madej
9e01c22a5e
Handle quoting identifiers properly
2024-12-18 19:45:06 +01:00
Alex Miller
88c862ce4d
Comments, resolve label better, make tests more fun
2024-12-10 19:59:54 -08:00
Alex Miller
eb00226cfe
Add support for CASE expressions.
...
There's two forms of case:
CASE (WHEN [bool expr] THEN [value])+ (ELSE [value])? END
which checks a series of boolean conditions, and:
CASE expr (WHEN [expr] THEN [value})+ (ELSE [value])? END
Which checks a series of equality conditions.
This implements support for both. Note that the ELSE is optional, and
will be equivalent to `ELSE null` if not specified.
sqlite3 gives the implementation as:
sqlite> explain select case a WHEN a THEN b WHEN c THEN d ELSE 0 END from casetest;
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 16 0 0 Start at 16
1 OpenRead 0 3 0 4 0 root=3 iDb=0; casetest
2 Rewind 0 15 0 0
3 Column 0 0 2 0 r[2]= cursor 0 column 0
4 Column 0 0 3 0 r[3]= cursor 0 column 0
5 Ne 3 8 2 BINARY-8 83 if r[2]!=r[3] goto 8
6 Column 0 1 1 0 r[1]= cursor 0 column 1
7 Goto 0 13 0 0
8 Column 0 2 3 0 r[3]= cursor 0 column 2
9 Ne 3 12 2 BINARY-8 83 if r[2]!=r[3] goto 12
10 Column 0 3 1 0 r[1]= cursor 0 column 3
11 Goto 0 13 0 0
12 Integer 0 1 0 0 r[1]=0
13 ResultRow 1 1 0 0 output=r[1]
14 Next 0 3 0 1
15 Halt 0 0 0 0
16 Transaction 0 0 2 0 1 usesStmtJournal=0
17 Goto 0 1 0 0
and after this patch, limbo gives:
addr opcode p1 p2 p3 p4 p5 comment
---- ----------------- ---- ---- ---- ------------- -- -------
0 Init 0 18 0 0 Start at 18
1 OpenReadAsync 0 4 0 0 table=casetest, root=4
2 OpenReadAwait 0 0 0 0
3 RewindAsync 0 0 0 0
4 RewindAwait 0 17 0 0 Rewind table casetest
5 Column 0 0 2 0 r[2]=casetest.a
6 Column 0 0 3 0 r[3]=casetest.a
7 Ne 2 3 10 0 if r[2]!=r[3] goto 10
8 Column 0 1 1 0 r[1]=casetest.b
9 Goto 0 14 0 0
10 Column 0 2 3 0 r[3]=casetest.c
11 Ne 2 3 14 0 if r[2]!=r[3] goto 14
12 Column 0 3 1 0 r[1]=casetest.d
13 Goto 0 14 0 0
14 ResultRow 1 1 0 0 output=r[1]
15 NextAsync 0 0 0 0
16 NextAwait 0 5 0 0
17 Halt 0 0 0 0
18 Transaction 0 0 0 0
19 Integer 0 1 0 0 r[1]=0
20 Goto 0 1 0 0
And then as there's nowhere to annotate this new support in COMPAT.md, I
added a corresponding heading for SELECT expressions and what is/isn't
supported.
2024-12-08 14:09:03 -08:00
Pekka Enberg
5efc218e6e
Merge 'support subtract in translate_expr() (not in condition expressions yet)' from Jussi Saurio
...
closes #402
Closes #403
2024-11-18 09:28:23 +02:00
jussisaurio
491bdd3bfc
support subtract in translate_expr() (not in condition expressions yet)
2024-11-17 18:47:16 +02:00