Jussi Saurio
959165eed1
Merge 'core/storage: Mark Page as Send and Sync' from Pekka Enberg
...
Closes #3399
2025-09-28 08:08:46 +03:00
Jussi Saurio
02ca451c67
Merge 'Correct spelling issue in ForeignKey ast node' from Preston Thorpe
...
`deref_clause` -> `defer_clause`
(Yes I'm implementing foreign keys)
Closes #3407
2025-09-28 08:08:13 +03:00
Jussi Saurio
2d06375003
Merge 'Move turso.png image to assets directory' from Preston Thorpe
...
not the first time I deleted this file on accident earlier, it belongs
in `assets`
Closes #3405
2025-09-28 08:07:49 +03:00
Jussi Saurio
618cf2a4e7
Merge 'core/translate: rewrite default column value from identifier to string literal' from Preston Thorpe
...
closes #3390
closes #3389
Closes #3403
2025-09-28 08:07:11 +03:00
pedrocarlo
9f95499a55
do not count BEGIN, COMMIT, and ROLLBACK queries as interactions in the InteractionPlan, so we can generate more meaningful intereactions without hitting the max cap quickly
2025-09-27 23:52:57 -03:00
pedrocarlo
13764e6b8e
in mvcc if creating a ddl statement, first commit all connections
2025-09-27 23:52:57 -03:00
pedrocarlo
dc1b1469a3
write connection index to sql file
2025-09-27 23:52:57 -03:00
pedrocarlo
461c765b7b
fix shrinking extensional queries. Now we only keep queries and/or properties that contain a depending table
2025-09-27 23:52:57 -03:00
pedrocarlo
d3c2198a75
keep track of each pending query for the transaction and then apply the queries on commit
2025-09-27 23:52:57 -03:00
pedrocarlo
399f35f73c
for each connection keep track of the tables at the start of the
...
transaction as well
2025-09-27 23:52:57 -03:00
pedrocarlo
9fd73855d2
after we generated all interactions if some connection is still in a transaction, commit
2025-09-27 23:52:57 -03:00
pedrocarlo
ff9599abe1
do not generate non-conccurent transactions with mvcc
2025-09-27 23:52:57 -03:00
pedrocarlo
bbbdd8c1e2
simplify rusqlite execution
2025-09-27 23:52:57 -03:00
pedrocarlo
009a8188e4
correctly shrink transaction statments across connections
2025-09-27 23:52:57 -03:00
pedrocarlo
df420ab815
consolidate SimulatorEnv rollback code
2025-09-27 23:52:57 -03:00
pedrocarlo
026fd9ae9e
add ignore_error flag to interaction so that we fail on errors when executing interactions
2025-09-27 23:52:57 -03:00
pedrocarlo
f2d29ffaaf
make transactions truly concurrent with mvcc
2025-09-27 23:52:57 -03:00
pedrocarlo
d070c1c184
rollback active transaction in properties that error is acceptable
2025-09-27 23:52:57 -03:00
PThorpe92
30f80c2000
Correct spelling issue in ForeignKey ast node
2025-09-27 17:38:45 -04:00
Preston Thorpe
1bacd7ff64
Merge 'core/translate: Persist NOT NULL column constraint to schema table' from Preston Thorpe
...
closes #3391
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3402
2025-09-27 14:34:53 -04:00
PThorpe92
4315a34939
Move png image to assets director
2025-09-27 14:13:45 -04:00
PThorpe92
ace2ac632a
Remove semicolon from test
2025-09-27 13:59:51 -04:00
PThorpe92
03046faccb
Translate default value Expr::Id to Literal to allow for identifier in col def
2025-09-27 13:56:04 -04:00
PThorpe92
6e3c30623c
Fix regression test to not use dot command
2025-09-27 13:17:50 -04:00
PThorpe92
bd17c5d5df
Add regression test for alter table with notnull constraint
2025-09-27 13:15:48 -04:00
PThorpe92
b7fc9fef40
Persist NOT NULL column constraint to schema table
2025-09-27 13:12:19 -04:00
Glauber Costa
78ee8b8627
Fix column fetch in joins
...
In comparisons for joins, we were assuming that the left column belonged
to the left join (and vice-versa). That is incorrect, because you can
write the comparison condition in any order.
Fixes #3368
2025-09-27 12:08:47 -03:00
Pekka Enberg
2f38d2ef04
Turso 0.2.0-pre.10
2025-09-27 16:52:35 +03:00
Pekka Enberg
9eb6f4b51e
Merge 'Sqlean fuzzy string ' from Danawan Bimantoro
...
Add implementations of string distance and phonetics functions:
fuzzy_damlev
fuzzy_hamming
fuzzy_jarowin
fuzzy_leven
fuzzy_osadist
fuzzy_editdist
fuzzy_soundex
fuzzy_rsoundex
fuzzy_phonetic
fuzzy_caver
fuzzy_translit
This implementation follows sqlean-fuzzy
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #3262
2025-09-27 16:51:49 +03:00
Pekka Enberg
3d3e39a958
Merge 'Make Sorter Send and Sync' from Pekka Enberg
...
Closes #3398
2025-09-27 16:51:27 +03:00
Pekka Enberg
d7a0a3db56
Merge 'core/translate: allow creating column called 'rowid'' from Preston Thorpe
...
closes #3282
includes minor refactor, removing `column_is_rowid_alias`, which is only
checking the public field of the argument Column.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3385
2025-09-27 16:51:09 +03:00
Pekka Enberg
5ff0044961
Merge 'length shall not count when it sees nullc' from Pavan Nambi
...
fixes #3317
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3356
2025-09-27 16:50:50 +03:00
Pekka Enberg
e34a935e0a
Merge 'resolve column alias after rewritting column access in the expression in returning insert clause' from Nikita Sivukhin
...
Fixes https://github.com/tursodatabase/turso/issues/3295
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3355
2025-09-27 16:50:42 +03:00
Avinash Sajjanshetty
c2453046fa
clippy fixes
2025-09-27 18:16:51 +05:30
Avinash Sajjanshetty
a2df313ad5
Add documentation for the encryption module
2025-09-27 18:11:27 +05:30
Avinash Sajjanshetty
a7237b80ea
add tests for checking encryption tampering
2025-09-27 17:49:42 +05:30
Pekka Enberg
2a8a0729c7
Merge 'core/storage: Wrap WalFile::syncing with AtomicBool' from Pekka Enberg
...
Closes #3397
2025-09-27 15:18:32 +03:00
Pekka Enberg
ce76aa11b2
core/storage: Mark Page as Send and Sync
2025-09-27 15:16:38 +03:00
Avinash Sajjanshetty
dc3d1fa36d
Use the SQLite header as associated data for protection
...
against tampering and corruption.
Previously, we did not use the first 100 bytes in encryption
machinery. This patch changes that and uses that data as
associated data. So in case the header is corrupted or
tampered with, the decryption will fail.
2025-09-27 17:34:51 +05:30
PThorpe92
16d1e7e6a9
Rename function and update comment to match behavior
2025-09-27 07:52:21 -04:00
PThorpe92
8517355c0c
make clippy happy
2025-09-27 07:52:21 -04:00
PThorpe92
2e186ce8fa
Add regression test for upsert explict non-rowid alias PK
2025-09-27 07:52:20 -04:00
PThorpe92
5ad3e5244b
Fix explicit ON CONFLICT target of non-rowid alias primary keys in UPSERT
2025-09-27 07:52:20 -04:00
Pekka Enberg
7b6fc0f3b6
core/vdbe: Wrap SortedChunk::total_bytes_read with AtomicUsize
2025-09-27 14:35:31 +03:00
Pekka Enberg
61b3f56997
core/vdbe: Wrap SortedChunk::io_state with RwLock
2025-09-27 14:28:55 +03:00
Pekka Enberg
4b189c930a
Merge 'Fix materialized views where clause issues' from Glauber Costa
...
This PR fixes issues on WHERE clauses for Materialized Views.
Ultimately, the problems stem from how we had a positive list of what is
a "complex expression" (needs projection), defaulting everything else to
simple (doesn't need projection). I guess it is fair to call me naive.
It should obviously be the other way. Most expressions need computation
=)
Closes #3396
2025-09-27 14:27:06 +03:00
Pekka Enberg
5f39987ec0
core/vdbe: Wrap SortedChunk::buffer_len with AtomicUsize
2025-09-27 14:23:02 +03:00
Pekka Enberg
b31818f77c
core/vdbe: Wrap SortedChunk::buffer with RwLock
2025-09-27 14:23:02 +03:00
Pekka Enberg
8d9d2dad1d
core/storage: Wrap WalFile::syncing with AtomicBool
2025-09-27 14:07:26 +03:00
Glauber Costa
3ee97ddf36
Make sure complex expressions in filters go through Project
...
We had code for this, but the code had a fatal flaw: it tried to detect
a complex operation (an operation that needs projection), and return
false (no need for projection), for the others.
This is the exact opposite of what we should do: we should identify the
*simple* operations, and then return true (needs projection) for the
rest.
CAST is a special beast, since it is not a function, but rather, a
special opcode. Everything else above is the true just the same. But for
CAST, we have to do the extra work to capture it in the logical plan and
pass it down.
Fixes #3372
Fixes #3370
Fixes #3369
2025-09-27 07:21:03 -03:00