Commit Graph

10455 Commits

Author SHA1 Message Date
Pekka Enberg
8e5e752722 Merge 'Support cipher and encryption key URI options' from William Souza
Closes #2851

Reviewed-by: Avinash Sajjanshetty (@avinassh)

Closes #2857
2025-09-01 08:25:29 +03:00
TcMits
ed1fb4cabc remove unnecessary check 2025-09-01 11:51:51 +07:00
Piotr Rzysko
6f1cd17fcf Consolidate methods emitting AggStep 2025-08-31 13:29:10 +02:00
Piotr Rzysko
cdba1f1b87 Generalize GroupByAggArgumentSource
This is primarily a mechanical change: the enum was moved between files,
renamed, and its comments updated so it is no longer strictly tied to
GROUP BY aggregations.

This prepares the enum for reuse with ungrouped aggregations.
2025-08-31 13:23:12 +02:00
Piotr Rzysko
0a85883ee2 Support external aggregate functions in GROUP BY 2025-08-31 12:02:11 +02:00
Piotr Rzysko
7d179bd9fe Fix handling of multiple arguments in aggregate functions
This bug occurred when arguments were read for the GROUP BY sorter — all
arguments were incorrectly resolved to the first column. Added tests
confirm that aggregates now work correctly both with and without the
sorter.
2025-08-31 12:02:11 +02:00
Piotr Rzysko
3ad4016080 Fix handling of zero-argument grouped aggregations
This commit consolidates the creation of the Aggregate struct, which was
previously handled differently in `prepare_one_select_plan` and
`resolve_aggregates`. That discrepancy caused inconsistent handling of
zero-argument aggregates.

The queries added in the new tests would previously trigger a panic.
2025-08-31 12:02:09 +02:00
TcMits
37f33dc45f add eq/contains/starts_with/ends_with_ignore_ascii_case 2025-08-31 16:18:42 +07:00
TcMits
73c6070e96 Merge branch 'main' into perf-3 2025-08-31 14:35:58 +07:00
TcMits
190e9bcc95 add match_ignore_ascii_case macro 2025-08-31 14:35:03 +07:00
김선우
424275b60b Apply lint 2025-08-31 16:15:37 +09:00
Piotr Rzysko
978a78b79a Handle COLLATE clause in grouped aggregations
Previously, it was only applied to ungrouped aggregations.
2025-08-31 06:51:26 +02:00
Glauber Costa
8fd6cadaa5 fix column count in ImmutableRow
When we create an ImmutableRow::from_value(), we are always adding a
null padding at the end. We didn't notice this before, because a SQLite
file with an extra column is as valid as any. But that column of course
should not be there.

I traced this to column_count(), which is off by one. My understanding
is that we should be returning based on serial_types, not offset.
2025-08-30 20:08:39 -05:00
luizgfc
528cab55c1 core/printf: %o substitution type implementation 2025-08-30 21:55:22 -03:00
luizgfc
38d528537a core/printf: %x and %X substitution types implementation 2025-08-30 21:53:48 -03:00
luizgfc
3f7a7d0e39 core/printf: %c substitution type implementation 2025-08-30 21:49:59 -03:00
luizgfc
078b0aca79 core/printf: %e and %E substitution types implementation 2025-08-30 21:41:59 -03:00
luizgfc
82a5a16478 core/printf: %u substitution type implementation 2025-08-30 21:41:59 -03:00
rajajisai
975a83c719 Include test 2025-08-30 16:13:44 -04:00
rajajisai
3409de3c47 Include page size when initializing encryption module
Move default page size to test

Store page_size as usize

clippy

fix import and move const inside test module
2025-08-30 16:13:44 -04:00
William Souza
0a6c3872a7 add test for encryption URI options 2025-08-30 15:56:43 -03:00
pedrocarlo
2cc0bb12d7 add Simulator profiles to CI 2025-08-30 13:09:27 -03:00
pedrocarlo
4f2bc96dbe add Faultless profile 2025-08-30 13:07:19 -03:00
Pekka Enberg
3c9dbfb09e Turso 0.1.5-pre.1 2025-08-30 18:28:38 +03:00
pedrocarlo
5881ee71d6 clippy 2025-08-30 12:21:37 -03:00
pedrocarlo
961c0cd282 script to save JsonSchema for editor integration 2025-08-30 12:17:50 -03:00
pedrocarlo
9aac45c3de small docs for profile 2025-08-30 11:31:52 -03:00
pedrocarlo
b9cc556a55 adjust write heavy profile to insert more rows 2025-08-30 11:31:52 -03:00
pedrocarlo
61fa7546c1 fold some SimulatorOpts fields to Profile 2025-08-30 11:31:52 -03:00
pedrocarlo
463eb1fefd simplify profile weights for writes 2025-08-30 11:31:52 -03:00
pedrocarlo
2f237fdcfd adjust remaining calculation to use the profile 2025-08-30 11:31:52 -03:00
pedrocarlo
962666831b read Profile file from path or use predefined profiles 2025-08-30 11:31:52 -03:00
pedrocarlo
a1407869d4 add serde, schemars and garde to profiles and options 2025-08-30 11:31:52 -03:00
pedrocarlo
faa943fc76 reduce cloning for pick_unique 2025-08-30 11:31:52 -03:00
pedrocarlo
bc6976fd33 add Select and Insert generation options 2025-08-30 11:31:52 -03:00
pedrocarlo
06b923d0c1 adjust simulator to use correct trait signature 2025-08-30 11:31:52 -03:00
pedrocarlo
9bc8bdb279 all Arbitrary traits need to pass a GenerationContext 2025-08-30 11:31:52 -03:00
pedrocarlo
1a8b78afd8 create ArbitraryContext and ArbitraryContextFrom traits to pass generation context + start implementing them in Table + FromClause 2025-08-30 11:31:52 -03:00
pedrocarlo
e0552629e3 create Generation Options structs 2025-08-30 11:31:52 -03:00
pedrocarlo
ef16bc4cfb add profiles together 2025-08-30 11:31:52 -03:00
pedrocarlo
918c2a3f69 extend latency profile + impl Default manually 2025-08-30 11:31:52 -03:00
pedrocarlo
19d9003cd7 create profiles folder 2025-08-30 11:31:52 -03:00
William Souza
b1114734d3 support cipher and encryption key URI options 2025-08-30 10:29:41 -03:00
Levy A.
293865c2d6 feat+fix: add tests and restrict altering some constraints 2025-08-30 03:43:31 -03:00
Levy A.
ad639b2b23 fix: reintroduce rename
we don't store the parsed column to replace just the name, this will be
refactored later with a more general approach
2025-08-30 03:10:39 -03:00
Levy A.
5b378e3730 feat: add AlterColumn instruction
also refactor `RenameColumn` to reuse the logic from `AlterColumn`
2025-08-30 03:10:39 -03:00
Levy A.
678ca8d33b feat(parser): add ALTER COLUMN 2025-08-30 03:10:39 -03:00
Pekka Enberg
e1b5f2d948 Merge 'Implement UPSERT' from Preston Thorpe
This PR closes #2019
Implements https://sqlite.org/lang_upsert.html

Closes #2853
2025-08-30 08:54:35 +03:00
Pekka Enberg
13057c8013 testing: Improve insert.test for STRICT mode type case insensitivity 2025-08-30 08:52:05 +03:00
Pekka Enberg
b22f184a19 Merge 'Fix column case sensitivity on strict table' from
closes: #2822
```
turso> insert into strict_table values (1);
turso>
```

Closes #2823
2025-08-30 08:45:28 +03:00