pedrocarlo
41f1f97138
cargo toml add extension static
...
adding doc
2025-04-04 18:29:13 -03:00
pedrocarlo
d5fa37ab66
remove error debug
2025-04-04 17:44:34 -03:00
pedrocarlo
57af9c71ba
customize completion candidates for some args
2025-04-04 17:39:09 -03:00
PThorpe92
e3985b6994
Remove unused mut ref from emit_update_instructions for tx context
2025-04-04 12:51:37 -04:00
PThorpe92
c6c3f39959
Add test cases in python CLI tests for OFFSET on LIMIT clauses
2025-04-04 12:49:12 -04:00
PThorpe92
13e084351d
Change parse_limit function to accept reference value to ast::Limit
2025-04-04 12:38:18 -04:00
PThorpe92
f6a64a7b15
Support OFFSET clause for LIMIT in UPDATE queries
2025-04-04 12:35:30 -04:00
pedrocarlo
fd3335908c
basic autocomplete for dot commands
2025-04-04 13:01:57 -03:00
Pekka Enberg
c3eaf47180
Merge 'Add support for default values in INSERT statements' from Diego Reis
...
While working on #494 I noticed that default values defined in schemas
weren't being applied.
Before:

Now:

Closes #1249
2025-04-04 08:59:44 +03:00
Pekka Enberg
a90cbe4b62
Merge 'Fix virtual table translation issues' from Preston Thorpe
...
closes #1240
some idiot (read: me) had the init label of `CREATE VIRTUAL TABLE`
translation completely in the wrong place 🤔
Closes #1247
2025-04-04 08:58:02 +03:00
Diego Reis
43daba9942
core/translate: Add support for default values in INSERT statements
2025-04-04 01:32:13 -03:00
Diego Reis
38d842d675
docs/insn: Standardizes comments for insn to doc comments
2025-04-04 00:56:54 -03:00
PThorpe92
97c68f905a
Move test back to original setup to ensure issue is solved
2025-04-03 20:22:47 -04:00
PThorpe92
ae2be30204
Move init label to proper place in create vtab translation
2025-04-03 20:22:14 -04:00
Ihor Andrianov
d4b8fa17f8
fix tests
2025-04-03 22:28:14 +03:00
Ihor Andrianov
5632b15a44
add tests
2025-04-03 22:28:13 +03:00
Ihor Andrianov
34a132fcd3
fix output when group by is not part of resulting set
2025-04-03 22:28:13 +03:00
Ihor Andrianov
91ceab1626
improve naming and add comments for context
2025-04-03 22:28:13 +03:00
Ihor Andrianov
816cbacc9c
some smartie optimizations
2025-04-03 22:28:12 +03:00
Ihor Andrianov
2bcdd4e404
non group by cols are displayed in group by agg statements
2025-04-03 22:28:12 +03:00
Ihor Andrianov
4fd1dcdc73
small refine
2025-04-03 22:28:11 +03:00
Ihor Andrianov
36fe859d7d
create if only if non aggregate columns present
2025-04-03 22:28:11 +03:00
Ihor Andrianov
352fa6fd34
cargo fmt
2025-04-03 22:28:11 +03:00
Ihor Andrianov
b47c214a5e
fix aggregation functions without group by
2025-04-03 22:28:10 +03:00
PThorpe92
22fd3e9781
Fix cli tests
2025-04-03 15:23:49 -04:00
Pekka Enberg
73a35329d0
Merge 'Fix overflow position in write_page()' from Lâm Hoàng Phúc
...
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #1241
2025-04-03 16:33:20 +03:00
Pekka Enberg
ccbea57a4d
Merge 'docs(readme): update discord link' from Jamie Barton
...
Closes #1242
Closes #1243
2025-04-03 15:35:16 +03:00
Jamie Barton
83ec159b0c
docs(readme): update discord link
2025-04-03 13:09:24 +01:00
Pekka Enberg
67627e18c8
Limbo 0.0.19-pre.4
2025-04-03 13:36:01 +03:00
Pekka Enberg
4392193856
bindings/javascript: Fix package repository URLs
2025-04-03 13:34:30 +03:00
Pekka Enberg
4f34373392
Limbo 0.0.19-pre.3
2025-04-03 12:39:17 +03:00
Pekka Enberg
64bd0c141a
github: Fix JavaScript publish workflow permissions
...
The workflow enables npm's provenance feature, which requires write
permissions to the "id-token" on Github actions:
https://tsmx.net/npmjs-built-and-signed-on-github-actions/
2025-04-03 12:38:01 +03:00
TcMits
56fa9049c3
fix: overflow pos in write_page
2025-04-03 15:02:53 +07:00
Pekka Enberg
a5ee6493c0
Limbo 0.0.19-pre.2
2025-04-03 10:43:36 +03:00
Pekka Enberg
4342438801
scripts: Add more npm packages to update-version.py
2025-04-03 10:43:28 +03:00
Pekka Enberg
a279056e88
bindings/javascript: Drop pre-publish step
...
We don't want napi creating releases.
2025-04-03 10:41:15 +03:00
Pekka Enberg
7075c75b24
Limbo 0.0.19-pre.1
2025-04-03 10:03:01 +03:00
Pekka Enberg
c61063c697
github: Fix JavaScript workflow release parsing
2025-04-03 10:03:01 +03:00
Pekka Enberg
16bc28b0af
sqlite3-parser: Change debug logging to trace level
...
SQL scanner at debug level spams the logs pretty hard when debugging...
2025-04-03 07:46:07 +03:00
tsar-boomba
89c0b0b862
Implement Clone and Debug for rust binding's Database
2025-04-02 18:22:57 -07:00
Pekka Enberg
7b9c0e9231
Merge 'More VDBE cleanups' from Pekka Enberg
...
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #1237
2025-04-02 19:25:41 +03:00
Pekka Enberg
24063bd9c0
core/vdbe: Add newline between op functions
2025-04-02 18:57:07 +03:00
Pekka Enberg
c592e27dca
core/vdbe: Move explain() to last method in Program
...
...it's the least interesting one and we should have `step()` at the top.
2025-04-02 18:55:35 +03:00
Pekka Enberg
ed1854c8de
Merge 'Request load page on insert_into_page' from Pere Diaz Bou
...
We assumed page was loaded because before inserting we would move there.
`NewRowId` unfortunately moves cursor to the rightmost page causing
eviction of root page -- this arose the issue with `insert_into_page`
not loading the page we were supposed to have loaded so I added
`return_if_locked_maybe_load` which is a utility macro to check if the
page is locked and if not, load it if needed.
Closes #1138
2025-04-02 18:52:25 +03:00
Pere Diaz Bou
65c4cb1e0e
Merge 'core/vdbe: Rename execute_insn_* to op_*' from Pekka Enberg
...
The "execute::execute_insn" prefix is noisy, let's rename the
instruction operation functions to something shorter and sweeter.
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #1235
2025-04-02 17:25:12 +02:00
Pekka Enberg
265457f175
Merge 'Don't emit Transaction for simple SELECT statements' from Diego Reis
...
First step to close #1226 .
Before:

After:

Reusing the same register is a bit trickier, I'm understanding how
SQLite does this optimization to apply here as well.
EDIT: Now we reuse the register and have the same number of bytecodes as
SQLite.

Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #1227
2025-04-02 18:12:20 +03:00
Pekka Enberg
3420955db7
core/vdbe: Rename execute_insn_* to op_*
...
The "execute::execute_insn" prefix is noisy, let's rename the
instruction operation functions to something shorter and sweeter.
2025-04-02 18:02:02 +03:00
Pere Diaz Bou
5dedc68fda
remove arc import
2025-04-02 16:56:34 +02:00
Pekka Enberg
ee203e30ba
Merge 'Remove RWLock from Shared wal state' from Pere Diaz Bou
...
Fixes #780
WalShared state can be shared without having to wrap everything with a
lock, and instead use atomics on some places and rwlock on others -- for
now.
## Results:
From:
----
```
Execute `SELECT 1`/limbo_execute_select_1
time: [34.125 ns 34.218 ns 34.324 ns]
Execute `SELECT 1`/sqlite_execute_select_1
time: [28.124 ns 28.254 ns 28.385 ns]
```
To:
----
```bash
Execute `SELECT 1`/limbo_execute_select_1
time: [31.919 ns 32.113 ns 32.327 ns]
Execute `SELECT 1`/sqlite_execute_select_1
time: [29.662 ns 29.900 ns 30.139 ns]
```
And with `begin_read_tx` inlined:
----
```bash
Execute `SELECT 1`/limbo_execute_select_1
time: [30.543 ns 30.585 ns 30.632 ns]
```
Closes #1225
2025-04-02 17:47:45 +03:00
Pere Diaz Bou
e85fb86ff4
Request load page on insert_into_page
...
We assumed page was loaded because before inserting we would move there. `NewRowId` unfortunately moves cursor to the rightmost page causing eviction of root page -- this arose the issue with `insert_into_page` not loading the page we were supposed to have loaded so I added `return_if_locked_maybe_load` which is a utility macro to check if the page is locked and if not, load it if needed.
2025-04-02 16:24:53 +02:00