Jussi Saurio
59a1c2ae2e
Disallow joining more than 63 tables
...
Returns an error instead of panicing
2025-10-13 13:30:03 +03:00
Pekka Enberg
bd97c117ed
whopper: Remove debug printouts
2025-10-13 12:19:09 +03:00
Pekka Enberg
77492641db
Merge 'Move all checksum tests behind the feature flag' from Avinash Sajjanshetty
...
Closes #3704
2025-10-13 11:46:56 +03:00
Avinash Sajjanshetty
4a29694475
rename checksums tests appropriately
2025-10-13 13:48:07 +05:30
Avinash Sajjanshetty
ee479d2e52
Move all checksum tests behind the feature flag
2025-10-13 13:47:25 +05:30
Pekka Enberg
9e7c1e9061
Merge 'core/vdbe: Improve IdxDelete error messages with context' from Pekka Enberg
...
We currently return the exact same error from two different IdxDelete
paths. Improve the messages with context about what we're doing to make
this error more debuggable.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com>
Closes #3699
2025-10-13 10:19:08 +03:00
Pekka Enberg
9eeefa27e9
Merge 'stress: Add busy timeout support with 5 second default' from Pekka Enberg
...
Add `--busy-timeout` command-line option to turso-stress with a default
value of 5000 ms. This helps prevent spurious database busy errors
during concurrent stress testing and ensure that integrity checks are
not skipped because of concurrent writes.
Closes #3696
2025-10-13 10:19:01 +03:00
Pekka Enberg
49bf81ab8b
Merge 'Add WINDOW functions to COMPAT.md' from Jussi Saurio
...
Closes #3701
2025-10-13 10:18:54 +03:00
Jussi Saurio
171bcd83ec
COMPAT.MD: note about WINDOW functions
2025-10-13 10:16:13 +03:00
Pekka Enberg
2a02cafc73
core/vdbe: Improve IdxDelete error messages with context
...
We currently return the exact same error from two different IdxDelete
paths. Improve the messages with context about what we're doing to make
this error more debuggable.
2025-10-13 09:42:04 +03:00
Pekka Enberg
7b1b37095d
stress: Add busy timeout support with 5 second default
...
Add `--busy-timeout` command-line option to turso-stress with a default
value of 5000 ms. This helps prevent spurious database busy errors
during concurrent stress testing and ensure that integrity checks are
not skipped because of concurrent writes.
2025-10-13 09:11:10 +03:00
Pekka Enberg
eb000c3d0f
Merge 'core/translate: Add if alias and allow iff to have more arguments' from Pavan Nambi
...
closes #3689
Closes #3690
2025-10-13 08:53:00 +03:00
Pavan-Nambi
e1f23aeb2c
fmt and add tests
2025-10-12 22:23:04 +05:30
Pavan-Nambi
3491e1f42e
add if alais and allow iff to have more arguments
2025-10-12 22:17:35 +05:30
Pekka Enberg
7221f79a2f
Merge 'Stop ignoring table's max value incase of a manual update in autoincrement.' from Pavan Nambi
...
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Python / configure-strategy (push) Waiting to run
Python / linux (x86_64) (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
closes https://github.com/tursodatabase/turso/issues/3664
Reviewed-by: Preston Thorpe <preston@turso.tech>
Closes #3668
2025-10-12 18:38:13 +03:00
Pekka Enberg
487a1772fc
Merge 'Fix disallow reserved prefixes in ALTER TABLE RENAME TO' from xmchx
...
Closes #3574
Closes #3663
2025-10-12 18:37:44 +03:00
Pekka Enberg
3fafc23d96
Merge 'Nyrkiö nightly: Reduce frequency to 1 per 24h' from Henrik Ingo
...
Also fix a missed path in sqlite3 tests
Closes #3685
2025-10-12 18:37:25 +03:00
Henrik Ingo
00bde0d52a
Nyrkiö nightly: Reduce frequency to 1 per 24h
...
Also fix a missed path in sqlite3 tests
2025-10-12 13:46:26 +03:00
Pavan-Nambi
bd9ce7c485
add test
2025-10-12 15:58:10 +05:30
Pavan-Nambi
c59b0ffa65
fix(core/vdbe):pass largest value from table to op_new_rowid
2025-10-12 15:57:29 +05:30
Preston Thorpe
99f2df3d70
Merge 'Fix cloning database with autoincrement primary keys' from
...
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Python / configure-strategy (push) Waiting to run
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / linux (x86_64) (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
Ignore `sqlite_sequence` when dumping tables during cloning.
Fixes #3640 .
Reviewed-by: Preston Thorpe <preston@turso.tech>
Closes #3651
2025-10-11 13:33:15 -04:00
ultraman
5153e2aa32
Fix disallow reserved prefixes in ALTER TABLE RENAME TO
2025-10-11 16:30:25 +08:00
Pekka Enberg
fb1042187b
Turso 0.3.0-pre.1
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Python / linux (x86_64) (push) Waiting to run
Python / configure-strategy (push) Waiting to run
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Rust / clippy (push) Waiting to run
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
2025-10-10 19:25:58 +03:00
Pekka Enberg
4af61d8049
Merge 'core/btree: try to introduce trait for cursors' from Pere Diaz Bou
...
I've added a trait called `CursorTrait`. I know it's not a good name for
now, but I didn't know what tto change then enum `Cursor` to. This trait
wraps all common functionality, and some functionality that is yet too
specific that needs to be fixed.
This is needed in order to have layered cursors where for example,
MvccCursor will need a fallback BTreeCursor.
Closes #3660
2025-10-10 19:25:39 +03:00
Pere Diaz Bou
160a84250e
core: add CursorTrait imports where needed
2025-10-10 15:04:15 +02:00
Pere Diaz Bou
b3ab51d66a
core/vdbe: store cursor as a dyn CursorTrait
2025-10-10 15:04:15 +02:00
Pere Diaz Bou
d0d6db301b
core/btree: CursorTrait
2025-10-10 15:04:15 +02:00
Jussi Saurio
7725f336b8
Merge 'Fix incorrectly using an equality constraint twice for index seek' from Jussi Saurio
...
Prevents something like `WHERE x = 5 AND x = 5` from becoming a two
component index key.
Closes #3656
Reviewed-by: Nikita Sivukhin (@sivukhin)
Closes #3658
2025-10-10 13:33:43 +03:00
Jussi Saurio
74e04634aa
Fix incorrectly using an equality constraint twice for index seek
...
Prevents something like `WHERE x = 5 AND x = 5` from becoming a two
component index key.
Closes #3656
2025-10-10 13:19:19 +03:00
Pekka Enberg
12783ef01e
Merge 'bindings/java: Add support for publishing to Maven Central' from Kim Seon Woo
...
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Python / configure-strategy (push) Waiting to run
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / linux (x86_64) (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
## Purpose
- Deploy `tech.turso:turso:<version>` to maven central so that users can
easily use java bindings
- For example :
https://repo1.maven.org/maven2/io/github/seonwkim/turso/0.0.1/
## Requirements
- [x] Add the following github secrets.
- [x] MAVEN_CENTRAL_USERNAME
- [x] MAVEN_CENTRAL_PASSWORD
- [x] GPG_PRIVATE_KEY
- [x] GPG_PASSPHRASE
- [ ] Namespace `tech.turso` must be registered at maven central
- [ ] GPG key registration to key servers
- Notes
- Retrieve MAVEN_CENTRAL_USERNAME and MAVEN_CENTRAL_PASSWORD from
[maven central](https://central.sonatype.com/usertoken )
- GPG keys should be registered. You should distribute your keys to
designated(maven central supported) servers
- Refer to [GPG key related docs](https://central.sonatype.org/publ
ish/requirements/gpg/#distributing-your-public-key)
- Btw, I used `keyserver.ubuntu.com` key server while testing
### [Maven Central Username &
Password](https://central.sonatype.com/usertoken )
<img width="2878" height="1338" alt="image"
src="https://github.com/user-
attachments/assets/03e6f967-a7f6-46b8-aef5-d15772bd9eea" />
### [Maven Central
Namespace](https://central.sonatype.com/publishing/namespaces )
<img width="1424" height="456" alt="image" src="https://github.com/user-
attachments/assets/8c0f4f17-bf5a-4c6a-bc47-748d86cd1f1a" />
## Future Works
- Currently, we depend on gradle.properties to determine the version of
our dependency and it's cumbersome to always change the version
manually. Let's find a better solution.
Closes #3624
2025-10-10 13:12:01 +03:00
Pekka Enberg
e727b8e0dc
Merge 'Vector improvements' from Nikita Sivukhin
...
This PR introduces sparse vectors support and jaccard distance
implementation.
Also, this PR restructure the code to have all vector operations in
separate files (they grow pretty quickly as new vector representations
added to the DB).
Closes #3647
2025-10-10 13:08:46 +03:00
Pekka Enberg
77924c6c71
Merge 'Optimize sorter' from Jussi Saurio
...
Various little fixes to `Sorter` that reduce unnecessary work.
Makes TPC-H query 1 roughly 2x faster, which is a lot because it
originally took 30-40 seconds depending on the CI run
Closes #3645
2025-10-10 13:06:53 +03:00
Pekka Enberg
cf22819817
Merge 'Make sqlite_version() compatible with SQLite' from Glauber Costa
...
I found an application in the open that expects sqlite_version() to
return a specific string (higher than 3.8...).
We had tons of those issues at Scylla, and the lesson was that you tell
your kids not to lie, but when life hits, well... you lie.
We'll add a new function, turso_version, that tells the truth.
Closes #3635
2025-10-10 13:06:36 +03:00
Nikita Sivukhin
51122d3e9c
fix clippy
2025-10-10 11:39:06 +04:00
Jussi Saurio
c88061e1eb
Merge 'Fix IN operator NULL handling' from Diego Reis
...
Closes #3277
Basically changed what we used to do to match what and how SQLite does.
Closes #3606
2025-10-10 10:17:57 +03:00
rajajisai
6980128a24
Ignore sqlite_sequence table when dumping tables in .clone
2025-10-09 22:50:18 -04:00
Jussi Saurio
2c698525de
Merge 'Cleanup Simulator + Fix Column constraints in sql generation' from Pedro Muniz
...
Build & publish @tursodatabase/database / db-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / db-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-apple-darwin - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-aarch64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-wasm32-wasip1-threads - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-pc-windows-msvc - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / sync-bindings-x86_64-unknown-linux-gnu - node@20 (push) Waiting to run
Build & publish @tursodatabase/database / Publish (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on Linux-x64-gnu - node@20 (push) Blocked by required conditions
Build & publish @tursodatabase/database / Test DB bindings on browser@20 (push) Blocked by required conditions
Python / configure-strategy (push) Waiting to run
Python / test (push) Blocked by required conditions
Python / lint (push) Waiting to run
Python / linux (x86_64) (push) Waiting to run
Python / macos-arm64 (aarch64) (push) Waiting to run
Python / sdist (push) Waiting to run
Python / Release (push) Blocked by required conditions
Rust / cargo-fmt-check (push) Waiting to run
Rust / build-native (blacksmith-4vcpu-ubuntu-2404) (push) Waiting to run
Rust / build-native (macos-latest) (push) Waiting to run
Rust / build-native (windows-latest) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / simulator (push) Waiting to run
Rust / test-limbo (push) Waiting to run
Rust / test-sqlite (push) Waiting to run
Rust Benchmarks+Nyrkiö / vfs-bench-compile (push) Waiting to run
Rust Benchmarks+Nyrkiö / bench (push) Waiting to run
Rust Benchmarks+Nyrkiö / clickbench (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h-criterion (push) Waiting to run
Rust Benchmarks+Nyrkiö / tpc-h (push) Waiting to run
- Removed a general clippy rule to allow all dead code and subsequently
removed a lot of dead code
- Fixed Column constraints in Sql Generation to accommodate all Column
constraints available to the Parser and print the constraints in other
sql queries.
- Moved Generation of simulator values to separate files
These are some of the changes I made in my Alter Table PR that I am
upstreaming here
Closes #3649
2025-10-09 23:37:22 +03:00
pedrocarlo
642ec3032d
use parser's ColumnDefinition for Sql Generation Column struct
2025-10-09 17:25:04 -03:00
pedrocarlo
fb6c5ffcff
move SimValue generation to separate files to facilitate generation of new types of values in the future
2025-10-09 17:25:04 -03:00
pedrocarlo
b6f94b2fa1
remove dead code in sim
2025-10-09 17:25:04 -03:00
Nikita Sivukhin
7e727d07af
fix bugs add tests
2025-10-09 23:23:16 +04:00
Nikita Sivukhin
10c51c8da0
add test for convert operation
2025-10-09 22:14:38 +04:00
Nikita Sivukhin
e18f26a1f1
fix bug after refactoring
2025-10-09 21:28:46 +04:00
Nikita Sivukhin
ac9a25a417
fix clippy
2025-10-09 21:19:35 +04:00
Nikita Sivukhin
5336801574
add jaccard distance
2025-10-09 21:15:39 +04:00
Nikita Sivukhin
585d11b736
implement operations for sparse vectors
2025-10-09 20:52:58 +04:00
Jussi Saurio
edf40cc65b
clippy
2025-10-09 19:00:40 +03:00
Jussi Saurio
27a88b86dc
Reuse a single RecordCursor per PseudoCursor
2025-10-09 18:56:49 +03:00
Jussi Saurio
812709cf8e
inline collation comparison functions
2025-10-09 18:56:49 +03:00
Nikita Sivukhin
84643dc4f2
implement sparse vector operations
2025-10-09 19:19:33 +04:00