Commit graph

71 commits

Author SHA1 Message Date
PThorpe92
661c74e338
Apply new planner structure to virtual table impl 2025-02-06 09:15:28 -05:00
Jussi Saurio
f5f77c0bd1
Initial virtual table implementation 2025-02-06 07:51:50 -05:00
Pekka Enberg
c210821100 core: Move result row to ProgramState
Move result row to `ProgramState` to mimic what SQLite does where `Vdbe`
struct has a `pResultRow` member. This makes it easier to deal with result
lifetime, but more importantly, eventually lazily parse values at the edges of
the API.
2025-02-06 11:52:26 +02:00
Pekka Enberg
7967cc5efc core: Kill Rows wrapper struct
It's just an useless wrapper, kill it.
2025-01-26 16:27:19 +02:00
Jorge López
86a4714711
syntactic changes: remove unneeded paths when the type is already imported 2025-01-18 18:29:12 +01:00
Jussi Saurio
1b61749c0f feat/core/translate: create automatic index in CREATE TABLE when necessary 2025-01-04 13:54:44 +02:00
PThorpe92
f6cd707544
Add clippy CI, fix or ignore warnings where appropriate 2024-12-29 10:25:41 -05:00
Pekka Enberg
f2ecebc357 Rename RowResult to StepResult
The name "row result" is confusing because it really *is* a result from
a step() call. The only difference is how a row is represented as we
return from VDBE or from a statement.

Therefore, rename RowResult to StepResult.
2024-12-27 10:20:41 +02:00
Pere Diaz Bou
aed14117c9 core: transaction support 2024-12-24 18:04:30 +01:00
jussisaurio
80d438ba58 Merge 'Handle all SQLite quoting syntax' from Kacper Madej
This PR adds missing SQLite quoting syntax:
https://sqlite.org/lang_keywords.html
Closes #483
Closes #497
```bash
➜  limbo git:(missing-quoting) ✗ cargo run --package limbo --bin limbo home.db
Limbo v0.0.9
Enter ".help" for usage hints.
limbo> select * from home limit 1;
Documents|dir|280|2024-10-13 06:26:05.605048960+02:00
limbo> select * from [home] limit 1;
Documents|dir|280|2024-10-13 06:26:05.605048960+02:00
limbo> select * from `home` limit 1;
Documents|dir|280|2024-10-13 06:26:05.605048960+02:00
limbo> select * from "home" limit 1;
Documents|dir|280|2024-10-13 06:26:05.605048960+02:00
```

Closes #492
2024-12-19 17:00:23 +02:00
Pekka Enberg
e93ac38e55 Add statement interruption support
This adds an interrupt() method to Statement that allows apps to
interrupt a running statement. Please note that this is different from
`sqlite3_interrupt()` which interrupts all ongoing operations in a
database. Although we want to support that too, per statement interrupt
is much more useful to apps.
2024-12-19 12:30:32 +02:00
Kacper Madej
9e01c22a5e Handle quoting identifiers properly 2024-12-18 19:45:06 +01:00
PThorpe92
1833dcb618
Shrink shell help msg and replace hardcoded path for shell tests 2024-12-16 20:14:04 -05:00
PThorpe92
66c44a021f
Move ast expr equality check out of vendored, remove allocs and add cases 2024-12-16 19:39:06 -05:00
Pere Diaz Bou
090615b289 create btree table + parse schema 2024-11-16 16:24:28 +01:00
Piotr Jastrzebski
9ddb0befc4 Add has_rowid field to BTreeTable
Signed-off-by: Piotr Jastrzebski <haaawk@gmail.com>
2024-07-07 14:32:28 +02:00
Piotr Jastrzebski
81cf0430de Improve normalize_ident
Signed-off-by: Piotr Jastrzebski <haaawk@gmail.com>
2024-07-07 13:05:00 +02:00
Piotr Jastrzebski
5eea420994 Simplify normalize_ident
Signed-off-by: Piotr Jastrzebski <haaawk@gmail.com>
2024-07-07 12:46:09 +02:00
Piotr Jastrzebski
83c7e7bd95 Remove unneeded allocation
Signed-off-by: Piotr Jastrzebski <haaawk@gmail.com>
2024-07-07 12:45:49 +02:00
Pekka Enberg
307fed0848 Format source code with cargo fmt 2024-07-03 11:38:12 +03:00
Pere Diaz Bou
9242e5c671 core: fix agg function uppercase parsing
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-07-03 08:56:30 +02:00