Ihor Andrianov
70396d7425
add function definition
2025-01-29 18:05:38 +02:00
Glauber Costa
8f24d18ad8
implement sqlite_source_id function
2025-01-28 14:55:38 -05:00
Harin
0903b9b019
Implemented JSON valid function
2025-01-26 23:35:47 +05:30
pedrocarlo
a316ab51ac
feature: implement strftime function
2025-01-25 16:22:53 -03:00
Pekka Enberg
bda1e4e6ab
Merge 'Add support for json_object function' from Jorge Hermo
...
Relates to #127 . This PR is still in draft and I have a few left things
to do (tests, improve implementation), just opening it so anyone can
track this work meanwhile.
Closes #664
2025-01-20 09:36:56 +02:00
Pekka Enberg
f5e5428d45
Merge 'Syntactic improvements' from Jorge López Tello
...
This is a purely syntactic PR. It doesn't change behavior, just rewrites
some loops and removes unneeded parts, like lifetime annotations and
references. Mainly because the Clippy and IDE warnings get annoying.
Don't worry about the number of commits, I just separated based on type
of change.
Closes #732
2025-01-19 12:17:28 +02:00
Krishna Vishal
fa0503f0ce
1. Changes to extension.py
...
2. chore: cargo fmt
2025-01-19 04:58:05 +05:30
Krishna Vishal
6173aeeb3b
1. Fix merge conflicts
...
2. change tests for extensions to return error instead of null (Preston)
2025-01-19 04:39:25 +05:30
Jorge López
86a4714711
syntactic changes: remove unneeded paths when the type is already imported
2025-01-18 18:29:12 +01:00
PThorpe92
0c737d88f7
Support aggregate functions in Extensions
2025-01-17 14:13:57 -05:00
Pekka Enberg
93903555aa
Rename limbo_extension crate to limbo_ext
2025-01-16 14:40:52 +02:00
Jorge Hermo
fa8eb9549a
Merge with main
2025-01-15 22:10:35 +01:00
PThorpe92
23d9d09b70
Add load_extension function, resolve shared lib extensions
2025-01-14 12:01:07 -05:00
PThorpe92
3412a3d4c2
Rough design for extension api/draft extension
2025-01-14 07:20:48 -05:00
PThorpe92
0a10d893d9
Sketch out runtime extension loading
2025-01-14 07:18:07 -05:00
Jorge Hermo
c1702b34eb
Merge with main
2025-01-13 22:21:13 +01:00
Pekka Enberg
1e94dbffcc
Merge branch 'main' into json-error-position
2025-01-13 18:21:37 +02:00
Jorge Hermo
3785e7c7f8
feat: initial json_object implementation
2025-01-13 01:09:48 +01:00
Jorge Hermo
c7b831515e
feat: initial json_object implementation
2025-01-12 22:29:48 +01:00
Peter Sooley
b5fed15997
implement json_error_position
2025-01-10 11:12:30 -08:00
Kacper Madej
743a8b2d94
Merge branch 'main' into right-arrow-json
2025-01-10 11:28:13 +07:00
Kacper Madej
dd533414ef
Implement -> and ->> operators for json
2025-01-09 15:38:32 +07:00
Kacper Madej
eebf9bfaac
Implement json_type
2025-01-09 11:29:17 +07:00
PThorpe92
ca428b3dda
Julianday function and additional tests/comments
2025-01-04 10:42:34 -05:00
PThorpe92
7c4a780cc2
Add DateTime func and support more modifiers
2025-01-04 08:41:03 -05:00
Pekka Enberg
bd5f081ea8
Merge 'Add support for changes() and total_changes() functions' from Lemon-Peppermint
...
#525
- Adds the necessary `ScalarFunc` variants to support the `changes()` &
`total_changes()` SQLite function.
- Adds the necessary fields to the `Connection` struct to track changes.
- Modify the `InsertAwait` OpCode behaviour to affect the changes
counter.
Closes #589
2025-01-04 10:14:06 +02:00
Lemon-Peppermint
abd8e6af43
Add early 'changes()' & 'total_changes()' support
2025-01-02 23:35:19 +02:00
Kacper Madej
4fc1b66225
Merge branch 'main' into json-extract
2025-01-02 15:04:16 +07:00
Pekka Enberg
33dbd6c892
core: External functions
2024-12-31 13:56:32 +02:00
Pekka Enberg
858aecfea2
core: Drop Clone and PartialEq from Func enum
...
We don't need them anywhere and they make it hard to introduce
GenericFunction.
2024-12-31 13:51:20 +02:00
Kacper Madej
692301e72c
Merge branch 'main' into json-extract
2024-12-31 15:53:08 +07:00
Kacper Madej
2e730ead25
Merge branch 'main' into json-extract
2024-12-31 15:41:18 +07:00
Kacper Madej
ad9acf7400
Add support for json_extract
2024-12-31 15:11:36 +07:00
adamnemecek
97647ff056
Clean up code to use Self
...
Closes #556
2024-12-29 10:07:38 +02:00
Peter Sooley
28244b10d6
implement json_array_length
2024-12-26 15:08:11 -08:00
PThorpe92
c06c4115f1
Adapt OwnedValues in uuid ext to new LimboText
2024-12-21 09:17:53 -05:00
PThorpe92
2fcae80902
Create ext directory for outside funcs, add uuid to ext dir
2024-12-21 09:16:04 -05:00
PThorpe92
c1561ecbb0
Tests for uuid funcitons, add compat docs
2024-12-21 09:13:48 -05:00
PThorpe92
fcab0ae299
Add uuid support for v4 and v7
2024-12-21 09:13:46 -05:00
Kacper Madej
19ae42dfa3
Implement json_array
2024-12-20 11:15:48 +01:00
Lauri Virtanen
9720f63a55
Add types for mathematical functions
2024-12-16 19:31:20 +02:00
Alperen Keleş
841a4fe2f8
Merge branch 'tursodatabase:main' into main
2024-12-12 13:13:41 -05:00
Li Yazhou
03288e5170
add impl about scalar function soundex with test
2024-12-12 21:48:05 +08:00
Alex Miller
c4d4569dc9
Merge remote-tracking branch 'upstream/main' into expr-iif
2024-12-11 20:13:54 -08:00
alpaylan
da28ed51ca
add implementation and tests for replace scalar function
2024-12-11 16:23:13 -05:00
Pekka Enberg
04f196113a
Merge 'Add last_insert_rowid() function' from Krishna Vishal
...
- Changed `Cursor` trait to be able to get access to `root_page`
- SQLite only updates last_insert_rowid for non-schema inserts. So we
check if the `InsertAwait` is not for `root_page` before updating
rowid
In SQLite it looks like this:
```
sqlite> EXPLAIN SELECT last_insert_rowid();
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 4 0 0
1 Function 0 0 1 last_insert_rowid(0) 0
2 ResultRow 1 1 0 0
3 Halt 0 0 0 0
4 Goto 0 1 0 0
```
In limbo it will look like this:
```
limbo> EXPLAIN SELECT last_insert_rowid();
addr opcode p1 p2 p3 p4 p5 comment
---- ----------------- ---- ---- ---- ------------- -- -------
0 Init 0 4 0 0 Start at 4
1 Function 0 2 1 last_insert_rowid 0 r[1]=func()
2 ResultRow 1 1 0 0 output=r[1]
3 Halt 0 0 0 0
4 Transaction 0 0 0 0
5 Goto 0 1 0 0
```
Closes #427
2024-12-11 10:44:34 +02:00
Kacper Kołodziej
d4bff2c93e
add octet_length scalar function
2024-12-10 22:56:38 +01:00
krishvishal
1e23af7d24
Added last_insert_rowid() function.
...
Need to fix its behavior. Problem is probably with `Cursor` implementation.
2024-12-09 17:41:28 +05:30
Alex Miller
183ea8e362
Implement support for iif().
...
In sqlite, iif() looks like:
sqlite> create table iiftest(a int, b int, c int);
sqlite> explain select iif(a,b,c) from iiftest;
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 11 0 0 Start at 11
1 OpenRead 0 2 0 3 0 root=2 iDb=0; iiftest
2 Rewind 0 10 0 0
3 Column 0 0 2 0 r[2]= cursor 0 column 0
4 IfNot 2 7 1 0
5 Column 0 1 1 0 r[1]= cursor 0 column 1
6 Goto 0 8 0 0
7 Column 0 2 1 0 r[1]= cursor 0 column 2
8 ResultRow 1 1 0 0 output=r[1]
9 Next 0 3 0 1
10 Halt 0 0 0 0
11 Transaction 0 0 1 0 1 usesStmtJournal=0
12 Goto 0 1 0 0
And with this change, in limbo it looks like:
addr opcode p1 p2 p3 p4 p5 comment
---- ----------------- ---- ---- ---- ------------- -- -------
0 Init 0 14 0 0 Start at 14
1 OpenReadAsync 0 2 0 0 table=iiftest, root=2
2 OpenReadAwait 0 0 0 0
3 RewindAsync 0 0 0 0
4 RewindAwait 0 13 0 0 Rewind table iiftest
5 Column 0 0 2 0 r[2]=iiftest.a
6 IfNot 2 9 1 0 if !r[2] goto 9
7 Column 0 1 1 0 r[1]=iiftest.b
8 Goto 0 10 0 0
9 Column 0 2 1 0 r[1]=iiftest.c
10 ResultRow 1 1 0 0 output=r[1]
11 NextAsync 0 0 0 0
12 NextAwait 0 5 0 0
13 Halt 0 0 0 0
14 Transaction 0 0 0 0
15 Goto 0 1 0 0
2024-12-07 21:04:03 -08:00
jussisaurio
ddd0cc041c
implement CAST(col as type)
2024-11-17 22:12:22 +02:00