Pere Diaz Bou
167459389b
core/translate: remove unneessary agg clones
2025-08-29 16:23:44 +02:00
Preston Thorpe
dc34097581
Merge 'core/vdbe: Micro-optimize "zero_or_null" opcode' from Pekka Enberg
...
It's a hot instruction for TPC-H, for example, so worth optimizing.
Reduces op_zero_or_null() from 5.6% to 2.4% in CPU flamegraph for TCP-H
Q1.
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2842
2025-08-29 10:23:31 -04:00
Preston Thorpe
eb0f2b7029
Merge 'translate: with_capacity insns' from Pere Diaz Bou
...
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2831
2025-08-29 10:23:09 -04:00
PThorpe92
959bc6ba74
Remove unused argument from handle_row fn
2025-08-29 10:18:49 -04:00
PThorpe92
5b73fad5d4
Remove some code duplication in the CLI
2025-08-29 10:15:07 -04:00
Avinash Sajjanshetty
bb591ab7e1
Propagate decryption erorr when reading from WAL
2025-08-29 18:07:38 +05:30
Avinash Sajjanshetty
95d14f5f1f
Propagate decryption error from the callback
2025-08-29 18:02:56 +05:30
Pekka Enberg
9fc5947fa6
core/vdbe: Micro-optimize "zero_or_null" opcode
...
It's a hot instruction for TPC-H, for example, so worth optimizing.
Reduces op_zero_or_null() from 5.6% to 2.4% in CPU flamegraph for TCP-H
Q1.
2025-08-29 14:38:50 +03:00
Pere Diaz Bou
db5e2883ee
core/wal: cache wal is initialized
2025-08-29 13:15:09 +02:00
Pekka Enberg
13e62ce435
Merge 'core: Initial pass on synchronous pragma' from Pekka Enberg
...
This adds support for "OFF" and "FULL" (default) synchronous modes. As
future work, we need to add NORMAL and EXTRA as well because
applications expect them.
Closes #2833
2025-08-29 07:27:12 +03:00
Pekka Enberg
70ae983685
Merge 'perf: avoid constructing PageType in helper methods' from Jussi Saurio
...
I think the `try_into()` is probably expensive. we can use the fact that
both interior page types are `<=5` to our advantage for a little perf
boost in these hot path function calls
Based on #2836 (just to see aggregate perf difference in benchmarks)
Closes #2837
2025-08-29 07:27:02 +03:00
Pekka Enberg
96778cfb0a
Merge 'refactor/perf: remove BTreePageInner' from Jussi Saurio
...
it wasn't used for anything. no more `page.get().get().id`.
i did this simply to clean up the code (we haven't needed BTreePageInner
in probably at least 8 months or more?), but it also:
- makes practically every tpc-h query faster due to removing indirection
and refcell runtime borrowing every time the btree stack is accessed etc
- makes every SELECT * FROM users bench query faster
- drops the count() benchmark runtime by like half
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2836
2025-08-29 07:26:56 +03:00
Jussi Saurio
ae0ac189fa
perf: avoid constructing PageType for helper methods
2025-08-28 22:56:44 +03:00
Jussi Saurio
ce860b7ec9
clippy
2025-08-28 21:48:29 +03:00
Jussi Saurio
9aae3fa859
refactor: remove BTreePageInner
...
it wasn't used for anything. no more `page.get().get().id`.
2025-08-28 21:44:54 +03:00
Pekka Enberg
3952dbb445
Merge 'Fix sorter column deduplication' from Piotr Rżysko
...
Previously, the added test case failed because the last result column
was missing - a nonexistent column in the sorter was referenced.
Closes #2824
2025-08-28 18:29:44 +03:00
PThorpe92
fb7e6fb280
Guard against all overflow when calculating IO offsets
2025-08-28 09:50:26 -04:00
PThorpe92
a0e5536360
Fix clippy warnings and remove self casts
2025-08-28 09:45:19 -04:00
PThorpe92
0a56d23402
Use u64 for file offsets in IO and calculate such offsets in u64
2025-08-28 09:44:00 -04:00
Pekka Enberg
2ea4354afe
Merge 'Improve integrity check' from Nikita Sivukhin
...
- check free list trunk and pages
- use shared hash map to check for duplicate references for pages
- properly check overflow pages
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #2816
2025-08-28 16:06:15 +03:00
Pekka Enberg
44ed4d562f
core: Initial pass on synchronous pragma
...
This adds support for "OFF" and "FULL" (default) synchronous modes. As
future work, we need to add NORMAL and EXTRA as well because
applications expect them.
2025-08-28 16:02:41 +03:00
Pekka Enberg
878147b931
Merge 'translate/insert: Improve string format performance' from Pere Diaz Bou
...
Rust's `fmt!` is slow af for the simplest of cases, let's just create
strings with a known size and skip all the fmt stuff.
Closes #2832
2025-08-28 14:36:09 +03:00
Pekka Enberg
a5322d2ab7
Merge 'core/schema: get_dependent_materialized_views_unnormalized' from Pere Diaz Bou
...
If we get a table name for in memory structure, it's safe to assume it's
already normalized.
Closes #2830
2025-08-28 14:34:06 +03:00
Pekka Enberg
eba90e1c5e
Merge 'core/util: emit literal, cow instead of replace' from Pere Diaz Bou
...
Closes #2828
2025-08-28 14:33:04 +03:00
Pekka Enberg
44e619be1a
Merge 'core/translate: sanize_string fast path improvement' from Pere Diaz Bou
...
Closes #2827
2025-08-28 14:32:43 +03:00
Pere Diaz Bou
964422375e
translate/insert: string fmt perf improvmenets
2025-08-28 13:22:54 +02:00
Pere Diaz Bou
c7230f4ab0
translate: with_capacity insns
2025-08-28 13:13:19 +02:00
Pere Diaz Bou
48e5ad7a55
core/schema: get_dependent_materialized_views_unnormalized
...
If we get a table name for in memory structure, it's safe to assume it's
already normalized.
2025-08-28 13:11:40 +02:00
Pere Diaz Bou
84c5c4e581
core/util: emit literal, cow instead of replace
2025-08-28 12:59:55 +02:00
Pere Diaz Bou
082f18c073
core/translate: sanize_string fast path improvement
2025-08-28 12:57:28 +02:00
Piotr Rzysko
c383d9f16e
Remove outdated comment in order_by.rs
...
The removed comment no longer matches the current code. The
OrderByRemapping struct and the surrounding comments are sufficient to
explain deduplication and remapping.
2025-08-28 09:49:55 +02:00
Piotr Rzysko
e33c2e0f0b
Fix sorter column deduplication
...
Previously, the added test case failed because the last result column
was missing - a nonexistent column in the sorter was referenced.
2025-08-28 09:49:55 +02:00
김선우
b50011d96b
Implement setTimestamp
2025-08-28 14:49:16 +09:00
김선우
6c93d78394
Add TODOs
2025-08-28 14:38:13 +09:00
김선우
a9ae588159
Implement setTime
2025-08-28 14:35:01 +09:00
김선우
a61ad217f1
Implement setDate
2025-08-28 14:20:40 +09:00
Pekka Enberg
b4eba8b456
Merge 'Fix planner alias and table name handling' from
...
closes : #2817
```
turso> select * from simple_view as "v" where "v"."x" = 1;
┌───┐
│ x │
├───┤
│ 1 │
└───┘
turso> select "s"."x" from simple as "s" where "s"."x" = 1;
┌───┐
│ x │
├───┤
│ 1 │
└───
```
Reviewed-by: Preston Thorpe <preston@turso.tech >
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2818
2025-08-28 07:39:47 +03:00
Pekka Enberg
591914a63b
Merge 'Introduce and propagate IOContext as required' from Avinash Sajjanshetty
...
I added `IOContext` to `DatbaseStorage` IO trait and this struct will
carry the necessary ctx required for encryption (or checksums.). This
lets us set the encryption at outside and let the IO layer handle it
properly
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2812
2025-08-28 07:38:52 +03:00
Pekka Enberg
20260c9dc0
Merge 'core/io: Switch Unix I/O to use libc::pwrite()' from Pekka Enberg
...
We use libc elsewhere for fault injection reasons, so let's do this
call-site too.
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #2811
2025-08-28 07:38:42 +03:00
Pekka Enberg
376dbc9261
Merge 'Update README.md for Go documentation' from Preston Thorpe
...
Closes #2819
2025-08-28 07:38:20 +03:00
PThorpe92
1526448089
Update README.md for Go documentation
2025-08-27 22:23:19 -04:00
themixednuts
79a9f4743e
fix: planner alias and table name
2025-08-27 18:13:03 -05:00
Nikita Sivukhin
1c0efcfbff
fix clippy
2025-08-27 23:22:21 +04:00
Glauber Costa
143c84c4e0
add tests for rollback of views.
2025-08-27 14:21:32 -05:00
Glauber Costa
565c2a698a
adjust views to use circuits
2025-08-27 14:21:32 -05:00
Glauber Costa
29b93e3e58
add DBSP circuit compiler
...
The next step is to adapt the view code to use circuits instead of
listing the operators manually.
2025-08-27 14:21:32 -05:00
Glauber Costa
898c0260f3
move operator to eval / commit pattern
...
We need a read only phase and a commit phase. Otherwise we will never
be able to rollback changes properly. We currently do that, but we
do that in the view. Before we move to circuits, this needs to be
internalized by the operator.
2025-08-27 14:21:32 -05:00
Nikita Sivukhin
09d4590ece
fix compilation
2025-08-27 23:19:26 +04:00
Nikita Sivukhin
ae705445bf
improve integrity check
...
- check free list trunk and pages
- use shared hash map to check for duplicate references for pages
- properly check overflow pages
2025-08-27 23:14:21 +04:00
Avinash Sajjanshetty
2c0842ff52
Set and propagate IOContext as required
2025-08-27 22:05:01 +05:30