Glauber Costa
770f86e490
move our dbsp-based views to materialized views
...
We will implement normal SQLite-style view-as-an-alias for
compatibility, and will call our incremental views materialized views.
2025-08-12 14:19:17 -05:00
Jussi Saurio
f598c86fa4
Merge 'Handle single, double and unquoted strings in values clause' from Mikaël Francoeur
...
I'm not sure how much this will clash with @TcMits's parser rewrite,
hopefully not too much. If it does and we eventually have to remove it,
at least we'll have two new regression tests.
Closes https://github.com/tursodatabase/turso/issues/2484
Closes #2499
2025-08-11 21:08:15 +03:00
Preston Thorpe
cb59877821
Merge 'Feat/pragma module list' from Lucas Forato
...
Implementation of the module_list pragma
Reviewed-by: Diego Reis (@el-yawd)
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2430
2025-08-11 13:54:24 -04:00
Lucas Forato
27fd6aa13a
chore: updated comment
2025-08-11 08:42:03 -03:00
Lucas Forato
ff157e10e5
feat: included ModuleList in PragmaName
2025-08-11 08:41:53 -03:00
bit-aloo
4dfa0d77c5
put freelist_count lexicographically in pragma name enum
2025-08-11 11:06:56 +05:30
bit-aloo
d2171e24a5
add pragma freelist_count
2025-08-11 10:03:46 +05:30
Mikaël Francoeur
2cf4e4fe96
handle single, double and unquoted strings in values clause
2025-08-08 09:03:38 -04:00
Pekka Enberg
0f9d0cf519
Merge branch 'main' into 2025-08-07-add-query-only-pragma
2025-08-08 07:41:38 +03:00
bit-aloo
6ffd4215a2
sort Pragma names in lexicographical order
2025-08-08 02:52:45 +05:30
bit-aloo
aaeec4d4f3
Implement PRAGMA query_only logic
2025-08-07 23:49:07 +05:30
Glauber Costa
f36974f086
implement the MaxPgCount opcode
...
It is used by the pragma max_page_count, which is also implemented.
2025-08-06 13:20:15 -05:00
Diego Reis
3834f441c4
Accept parsing SET statements with repeated names, like `.. SET (a, a) =
...
(1, 2)`
2025-07-31 00:08:12 -03:00
Diego Reis
bab10909c3
Disable extension loading for wasm
...
We should enable it later when wasm become more mature
2025-07-28 14:49:07 -03:00
Glauber Costa
b8ee38868d
implement the pragma encoding
...
Do not allow setting it. That ship has sailed around 2005.
2025-07-26 19:37:39 -05:00
meteorgan
b5a18d7dc9
fix get_column_name() when column name doesn't exist
2025-07-25 23:49:31 +08:00
bit-aloo
3cb2db933d
remove Id
2025-07-24 14:40:24 +05:30
bit-aloo
9a54ef214e
parser: Distinguish quoted identifiers and unify Id into Name enum
...
This commit replaces the `Name(pub String)` struct with a `Name` enum that
explicitly models how the name appeared in the source either as an
unquoted identifier (`Ident`) or a quoted string (`Quoted`).
In the process, the separate `Id` wrapper type has been coalesced into the
`Name` enum, simplifying the AST and reducing duplication in identifier
handling logic.
While this increases the size of some AST nodes (notably `yyStackEntry`),
it improves correctness and makes source structure more explicit for
later phases.
2025-07-24 14:40:19 +05:30
Jussi Saurio
022f679fab
chore: make every CREATE TABLE stmt in entire repo have 1 space after tbl name
...
`BTreeTable::to_sql` makes us incompatible with SQLite by losing e.g. the original whitespace provided during the CREATE TABLE command.
For now let's fix our tests by regex-replacing every CREATE TABLE in
the entire repo to have exactly 1 space after the table name in the
CREATE TABLE statement.
2025-07-22 11:35:21 +03:00
Glauber Costa
0545049d59
Implement pragma database_list
...
And also the CLI option .databases, which is just manipulating that.
This is one step in the road to attach.
2025-07-21 08:49:35 -05:00
Glauber Costa
6506b3147d
implement pragma application_id
...
Just for completeness, because it is easy.
2025-07-19 20:44:06 -05:00
Levy A.
89911ee8d1
remove to_sql_string from simulator
2025-07-16 12:34:10 -03:00
Levy A.
714225b9f0
remove ToSqlString trait
2025-07-16 12:16:34 -03:00
Levy A.
6fe2505425
add more ToTokens impls
2025-07-16 12:16:31 -03:00
Levy A.
e81c7b07fb
modify tests for new formatter
2025-07-16 12:16:31 -03:00
Levy A.
373a4a26c4
fix: comma function
2025-07-16 12:16:28 -03:00
Levy A.
9ff9c3fdc2
feat: add context to ToTokens
2025-07-16 12:12:15 -03:00
alpaylan
0b3fb2ecdd
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-13 11:10:52 -04:00
Jussi Saurio
a48b6d049a
Another post-rebase clippy round with 1.88.0
2025-07-12 19:10:56 +03:00
Nils Koch
1a91966c7e
fix clippy errors for rust 1.88.0 (manual fix)
2025-07-12 18:58:55 +03:00
alpaylan
c3d904b9ba
remove automatic parenthesis insertion from binary and unary expressions
2025-07-11 11:08:21 -04:00
alpaylan
65fe60ba57
fix the merge conflicts
2025-07-11 02:04:14 -04:00
alpaylan
8f46bbc77e
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-11 01:33:50 -04:00
Pekka Enberg
7ca84ee5b0
Merge 'parser: use YYSTACKDEPTH' from Lâm Hoàng Phúc
...
sqlite uses [fixed-size](https://github.com/sqlite/sqlite/blob/7fc6e6a27
26e650d3b82c6d3683bdbdc10e02467/tool/lempar.c#L238) array for `yystack`
and grow stack if needed. Let replace `vec` with `smallvec` in rust
version.
after:
```sh
sqlparser-rs parsing benchmark/sqlparser::select
time: [564.19 ns 565.63 ns 567.18 ns]
change: [-11.514% -11.288% -11.067%] (p = 0.00 < 0.05)
Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
3 (3.00%) high mild
sqlparser-rs parsing benchmark/sqlparser::with_select
time: [1.9812 µs 1.9861 µs 1.9914 µs]
change: [-7.5226% -7.3080% -7.0858%] (p = 0.00 < 0.05)
Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) low mild
4 (4.00%) high mild
```
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #1999
2025-07-08 16:20:51 +03:00
TcMits
edeced8912
parser: use YYSTACKDEPTH
2025-07-08 14:58:33 +07:00
Pekka Enberg
27705ce00a
Merge 'parser: replace KEYWORDS with matching' from Lâm Hoàng Phúc
...
before:
```sh
sqlparser-rs parsing benchmark/sqlparser::select
time: [693.20 ns 693.96 ns 694.73 ns]
change: [+7.4382% +7.6384% +7.8250%] (p = 0.00 < 0.05)
Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low severe
1 (1.00%) low mild
1 (1.00%) high mild
sqlparser-rs parsing benchmark/sqlparser::with_select
time: [2.5734 µs 2.5763 µs 2.5796 µs]
change: [+16.583% +16.809% +17.024%] (p = 0.00 < 0.05)
Performance has regressed.
sqlparser-rs parsing benchmark/keyword_token
time: [3.1919 µs 3.1983 µs 3.2047 µs]
change: [+944.74% +948.97% +952.91%] (p = 0.00 < 0.05)
Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) low mild
```
after:
```sh
sqlparser-rs parsing benchmark/sqlparser::select
time: [637.09 ns 638.50 ns 640.15 ns]
change: [-1.8412% -1.5494% -1.2424%] (p = 0.00 < 0.05)
Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) low severe
3 (3.00%) low mild
3 (3.00%) high mild
1 (1.00%) high severe
sqlparser-rs parsing benchmark/sqlparser::with_select
time: [2.1896 µs 2.1919 µs 2.1942 µs]
change: [-0.6894% -0.3923% -0.1517%] (p = 0.00 < 0.05)
Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
4 (4.00%) low severe
sqlparser-rs parsing benchmark/keyword_token
time: [298.99 ns 299.82 ns 300.72 ns]
change: [-1.4726% -1.0148% -0.5702%] (p = 0.00 < 0.05)
Change within noise threshold.
Found 7 outliers among 100 measurements (7.00%)
1 (1.00%) low mild
6 (6.00%) high mild
```
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #1939
2025-07-08 10:21:03 +03:00
alpaylan
b0cf2ba92c
add paranthesis to the unary expression printer
2025-07-06 14:58:29 -04:00
alpaylan
0bce68b38d
wip: add joins to the select
2025-07-06 14:46:38 -04:00
Nikita Sivukhin
1ee475f04a
rename pragma to unsable_capture_data_changes_conn
2025-07-06 22:32:42 +04:00
Nikita Sivukhin
6a6276878c
fix test
2025-07-06 21:16:58 +04:00
Nikita Sivukhin
04f2efeaa4
small renames
2025-07-06 21:16:57 +04:00
Nikita Sivukhin
234dda322f
handle change_capture pragma
2025-07-06 21:16:25 +04:00
TcMits
13ad950b29
docs
2025-07-05 14:55:18 +07:00
TcMits
de0a41dacc
fmt, clippy
2025-07-04 17:14:13 +07:00
TcMits
954b58d8ac
generate MAX_KEYWORD_LEN, MIN_KEYWORD_LEN
2025-07-04 17:11:26 +07:00
TcMits
86f121aa80
clippy again
2025-07-03 21:07:13 +07:00
TcMits
23a2f83947
clippy
2025-07-03 20:58:09 +07:00
TcMits
122f5c3f42
parser: replace KEYWORDS with matching
2025-07-03 20:43:33 +07:00
Pekka Enberg
725c3e4ddc
Rename limbo_sqlite3_parser crate to turso_sqlite3_parser
2025-06-29 12:34:46 +03:00
Pekka Enberg
53ba3ff926
Rename limbo_core crate to turso_core
2025-06-29 09:59:17 +03:00