meteorgan
ef3f004e30
refactor numeric literal
2025-05-08 18:37:17 +08:00
meteorgan
51d43074f3
Support literal-value current_time, current_date and current_timestamp
2025-04-29 22:35:26 +08:00
Jussi Saurio
e557503091
expr.rs: use constant spans to optimize constant expressions
2025-04-24 11:05:21 +03:00
pedrocarlo
1928dcfa10
Correct docs regarding between
2025-04-21 23:05:01 -03:00
Jussi Saurio
6c73db6fd3
feat: use covering indexes whenever possible
2025-04-18 15:13:09 +03:00
Jussi Saurio
913367409e
Merge 'Parse hex integers 2' from Anton Harniakou
...
Continuation of #1329
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #1347
2025-04-16 11:13:01 +03:00
Anton Harniakou
8c797a9bd1
Use eq_ignore_ascii_case to compare strings
2025-04-15 21:48:53 +03:00
Anton Harniakou
0cebeef2ff
Support hex integers beginning with uppercase notation like 0Xfff or 0XFFF
2025-04-14 21:23:04 +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
pedrocarlo
e1ddf5ffcc
Fix Unary Negate Operation on Blobs
2025-04-14 12:05:00 -03:00
Jussi Saurio
d20782350d
Merge 'support modifiers for julianday()' from meteorgan
...
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #1321
2025-04-14 11:52:43 +03:00
Jussi Saurio
79b08a80ab
Merge 'Parse hexidecimal integers' from Anton Harniakou
...
Fixes #1304
Maybe I should add tests?
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #1329
2025-04-14 11:49:10 +03:00
Anton Harniakou
9ed34924e6
Parse hexidecimal integers
2025-04-13 11:52:25 +03:00
Diego Reis
db0f07499d
core/translate: Fix naive comparison between Binary expressions during register optimization
2025-04-12 16:39:30 -03:00
meteorgan
8200b328d8
support modifiers for julianday()
2025-04-12 19:29:20 +08:00
Pekka Enberg
d67e1b604b
Merge 'Added 'likelihood' scalar function' from Sachin Kumar Singh
...
The `likelihood(X,Y)` function returns argument X unchanged. The value Y
in likelihood(X,Y) must be a floating point constant between 0.0 and
1.0, inclusive.
```
sqlite> explain SELECT likelihood(42, 0.0);
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 6 0 0 Start at 6
1 Once 0 3 0 0
2 Integer 42 2 0 0 r[2]=42
3 Copy 2 1 0 0 r[1]=r[2]
4 ResultRow 1 1 0 0 output=r[1]
5 Halt 0 0 0 0
6 Goto 0 1 0 0
```
```
limbo> explain SELECT likelihood(42, 0.0);
addr opcode p1 p2 p3 p4 p5 comment
---- ----------------- ---- ---- ---- ------------- -- -------
0 Init 0 4 0 0 Start at 4
1 Copy 2 1 0 0 r[1]=r[2]
2 ResultRow 1 1 0 0 output=r[1]
3 Halt 0 0 0 0
4 Integer 42 2 0 0 r[2]=42
5 Goto 0 1 0 0
```
Closes #1303
2025-04-11 09:34:36 +03:00
Sachin Singh
01fa02364d
correctly handle edge cases
2025-04-11 08:34:29 +05:30
Sachin Singh
482e93bfd0
feat: add likelihood scalar function
2025-04-11 05:54:23 +05:30
Sachin Singh
b7acfa490c
feat: add timediff data and time function
2025-04-11 04:30:57 +05:30
Duncan Lutz
aa7c64cb19
feat: added likely scalar function
2025-04-06 23:14:30 -06:00
Diego Reis
3c531ac5ec
core/expr: Reuse register in binary expressions if they're equal
2025-04-02 09:15:41 -03:00
Diego Reis
86f8719b69
core/expr: Extract binary insn emission in a separate function
2025-04-02 09:14:01 -03:00
Ihor Andrianov
db5e364210
made json an optional module again
2025-03-30 19:01:03 +03:00
Ihor Andrianov
6c126dcd97
add jsonb_set
2025-03-30 18:58:40 +03:00
Ihor Andrianov
568dc54b9e
big cleanup
2025-03-30 18:58:33 +03:00
Ihor Andrianov
a983c979c6
jsonb_merge, json_group_array, json_group_object
2025-03-30 18:47:33 +03:00
Levy A.
dd10fb13a7
fix: unary + is a noop
2025-03-25 11:43:19 -03:00
Pekka Enberg
31bbc5144a
Merge 'Initial pass at UPDATE support' from Preston Thorpe
...
This PR is to support `Update` queries. Follows sqlite behavior as much
as possible.
### limbo
```console
limbo> create table t (a,b,c);
limbo> explain update t set a = 1 where b = 2;
addr opcode p1 p2 p3 p4 p5 comment
---- ----------------- ---- ---- ---- ------------- -- -------
0 Init 0 18 0 0 Start at 18
1 OpenWriteAsync 0 2 0 0
2 OpenWriteAwait 0 0 0 0
3 RewindAsync 0 0 0 0
4 RewindAwait 0 17 0 0 Rewind table t
5 Column 0 1 4 0 r[4]=t.b
6 Ne 4 5 15 0 if r[4]!=r[5] goto 15
7 RowId 0 6 0 0 r[6]=t.rowid
8 IsNull 6 17 0 0 if (r[6]==NULL) goto 17
9 Integer 1 1 0 0 r[1]=1
10 Column 0 1 2 0 r[2]=t.b
11 Column 0 2 3 0 r[3]=t.c
12 MakeRecord 1 3 7 0 r[7]=mkrec(r[1..3])
13 InsertAsync 0 7 6 0
14 InsertAwait 0 0 0 0
15 NextAsync 0 0 0 0
16 NextAwait 0 5 0 0
17 Halt 0 0 0 0
18 Transaction 0 1 0 0 write=true
19 Integer 2 5 0 0 r[5]=2
20 Goto 0 1 0 0
```
### sqlite
```console
sqlite> explain update t set a = 1 where b = 2;
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 15 0 0 Start at 15
1 Null 0 1 2 0 r[1..2]=NULL
2 Noop 1 0 1 0
3 OpenWrite 0 2 0 2 0 root=2 iDb=0; t
4 Rewind 0 14 0 0
5 Column 0 1 5 0 r[5]= cursor 0 column 1
6 Ne 6 13 5 BINARY-8 81 if r[5]!=r[6] goto 13
7 Rowid 0 2 0 0 r[2]= rowid of 0
8 IsNull 2 14 0 0 if r[2]==NULL goto 14
9 Integer 1 3 0 0 r[3]=1
10 Column 0 1 4 0 r[4]= cursor 0 column 1
11 MakeRecord 3 2 1 0 r[1]=mkrec(r[3..4])
12 Insert 0 1 2 t 7 intkey=r[2] data=r[1]
13 Next 0 5 0 1
14 Halt 0 0 0 0
15 Transaction 0 1 1 0 1 usesStmtJournal=0
16 Integer 2 6 0 0 r[6]=2
17 Goto 0 1 0 0
```
Closes #1130
2025-03-24 09:19:22 +02:00
Pekka Enberg
e8c0a6e728
Merge 'Various JSON improvements' from Ihor Andrianov
...
Added jsonb_object, jsonb_array, json_insert, jsonb_insert.
MongoDB is sweating now.
Closes #1160
2025-03-24 09:17:40 +02:00
PThorpe92
a0188e5163
Use bind_col_refs to rewrite the Id expressions
2025-03-23 22:18:41 -04:00
PThorpe92
3597b32e4b
Resolve ambiguous columns in expr translator
2025-03-23 19:19:35 -04:00
Ihor Andrianov
2cab36bfc3
add json_replace, jsonb_replace
2025-03-23 20:52:03 +02:00
Ihor Andrianov
252583cb1e
add jsonb_obj jsonb_array
2025-03-20 15:22:52 +02:00
Pekka Enberg
4142f4f4cb
Merge 'Organize extension library and feature gate VFS' from Preston Thorpe
...
I keep having 3+ PR's in at the same time and always deal with crazy
conflicts because everything in the `ext` library is together in one
file.
This PR moves each category of extension into its own file, and
separates the `vfs` functionality in Core into the `ext/dynamic` module,
so that it can be more easily separated from wasm (or non feature =
"fs") targets to prevent build issues.
The only semantic changes made in this PR is the feature gating of vfs,
the rest is simply organizing and cleaning up imports.
Was unsure if `vfs` should be a feature on the `core` side too, or to
just enable it with the `fs` feature which seemed reasonable, as that
was already the current behavior. But let me know if we want it entirely
behind it's own feature.
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #1124
2025-03-19 19:08:13 +02:00
PThorpe92
57d4aa7216
Reorganize ext library and feature gate vfs to more easily prevent wasm build issues
2025-03-19 10:17:11 -04:00
Ihor Andrianov
b5e86a9e36
remove and replace functions defenitions
2025-03-18 21:43:48 +02:00
Ihor Andrianov
23d7d82b6c
add jsonb_extract function
2025-03-16 15:14:29 +02:00
Ihor Andrianov
04f69220b7
add jsonb function implementation and json now understands blobs
2025-03-12 15:03:40 +02:00
l.gualtieri
6449c79e93
Escape character is ignored in LIKE function #1051
2025-03-01 18:32:09 +01:00
Jussi Saurio
bece5b601a
Add comment about translate_like_base
2025-02-17 10:55:26 +02:00
Jussi Saurio
9bf5b9609f
expr.rs: Binary: use translate_expr()'s impl for currently unsupported ops in translate_condition_expr()
2025-02-17 07:43:09 +02:00
Jussi Saurio
28ad12699f
expr.rs: Unary: use shared impl in translate_expr() and translate_condition_expr()
2025-02-17 07:43:09 +02:00
Jussi Saurio
dc852fee8c
expr.rs: Like: use shared impl in translate_expr() and translate_condition_expr()
2025-02-17 07:43:09 +02:00
Jussi Saurio
c6b8100d64
expr.rs: Case: call translate_expr() from translate_condition_expr()
2025-02-17 07:43:09 +02:00
Jussi Saurio
4f384e3a02
expr.rs: Rowid: call translate_expr() from translate_condition_expr()
2025-02-17 07:43:09 +02:00
Jussi Saurio
d91ba9573b
expr.rs: Column: call translate_expr() from translate_condition_expr()
2025-02-17 07:43:08 +02:00
Jussi Saurio
7023ffc215
expr.rs: FunctionCall: call translate_expr() from translate_condition_expr()
2025-02-17 07:43:08 +02:00
Jussi Saurio
b93e01d59f
expr.rs: Cast: call translate_expr() from translate_condition_expr()
2025-02-17 07:43:05 +02:00
Nikita Sivukhin
db7544fe7a
Merge branch 'tursodatabase:main' into fix-and-predicate
2025-02-15 22:57:56 +04:00
Nikita Sivukhin
ee8b03528d
fix codegen for and predicate - as jump_if_condition_is_true can be overwritten higher in the stack
2025-02-15 16:27:27 +04:00