Commit Graph

370 Commits

Author SHA1 Message Date
Pere Diaz Bou
cfeddeaadf core: fix payload serialization 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
84bf0ea96a core: remove a bunch of warnings
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-07-31 17:27:02 +02:00
Pere Diaz Bou
463292c2fe core: fix rebase errors 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
845a1ea175 core: cacheflush and fix *Completion casting 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
7846a3b29c core: fix calculation of record header size varint 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
e6f8b34f2b core: insert_to_page almost complete 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
1820761335 core: serialize record 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
661573f2bd core: write_varint 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
4474317aa8 core: compute free space 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
bbf238a6a4 core/io: save raw buffers on page
necessary for future lazy addressing of values and writes to page data
2024-07-31 17:27:02 +02:00
Pere Diaz Bou
a09f3485f9 core: fix op generation 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
6db82abf63 core: move_to 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
a441e5e302 core: new custom lru page cache 2024-07-31 17:27:02 +02:00
Pere Diaz Bou
6357e88b46 core: implement vdbe opcodes minus newrowid 2024-07-31 17:25:01 +02:00
Pere Diaz Bou
affe3443cc core: vbde coroutine generation with rowid insert 2024-07-31 17:25:01 +02:00
Pere Diaz Bou
bbed54d11c core: basic op explain insert 2024-07-31 17:23:16 +02:00
Pekka Enberg
86e8a90475 Merge pull request #245 from penberg/process-where-before-opening-loops 2024-07-28 18:58:20 +03:00
macroexpansion
918b99b7a3 feat: add RTRIM(X) and RTRIM(X,Y) scalar function 2024-07-28 21:17:53 +07:00
jussisaurio
a700d70281 Process where clause and joins before opening loops
This is background restructuring work to enable us to change the
loop order (or change the way a given loop is handled) based on
what the WHERE and JOIN clauses contain.

Changes:

- `process_where()` called before opening table loops
- Due to the above, `WhereTerm` now refers to table identifiers instead of
  cursor IDs because the cursors have not been allocated yet at that point
- `ProcessedWhereClause` now contains a `loop_order`, which just defaults
  to the order in the SQL query for now. In the future the loop order may
  change depending on the query.
- `loops` removed from `Select` struct; a `LoopInfo` vector is now returned
  from `translate_tables_begin()`
2024-07-28 13:07:11 +03:00
Jussi Saurio
9a50d53fcb Merge pull request #244 from penberg/fold-columns
core: Fold columns into column_info in Select struct
2024-07-28 10:50:57 +03:00
Pekka Enberg
93d88d6cca core: Fold columns into column_info in Select struct
As a cleanup, fold the columns struct member into column_info by
introducing a `raw_column` in `ColumnInfo` struct.
2024-07-28 10:01:48 +03:00
Pekka Enberg
7d94d228e2 core: Fix error messages for unsupported SQL statements
Let's be a little bit more friendly towards users...
2024-07-28 09:46:59 +03:00
Pekka Enberg
ccf76aac54 Merge pull request #237 from penberg/optimize-constant-conditions 2024-07-27 22:56:56 +03:00
jussisaurio
769bf51d13 rename 2024-07-27 16:48:59 +03:00
jussisaurio
6f879c3e79 Amend code comment explaining 'early_terminate_label' 2024-07-27 16:48:01 +03:00
jussisaurio
fee33cfcf0 Rename ljbk to left_join and left_join_bookkeeping to left_join_maybe 2024-07-27 16:38:47 +03:00
Pekka Enberg
0256de7bad Merge pull request #238 from macroexpansion/feature/add-ltrim-scalar-function 2024-07-27 15:57:48 +03:00
macroexpansion
750f18be35 feat: add ltrim scalar function 2024-07-27 19:46:27 +07:00
jussisaurio
700d9ee976 Optimize constant conditions 2024-07-27 15:08:30 +03:00
Pekka Enberg
f34141f725 Merge pull request #236 from penberg/in-list 2024-07-27 12:41:45 +03:00
jussisaurio
19a69e5970 Don't evaluate left side of 'x IN (...)' if right side is empty 2024-07-27 10:55:34 +03:00
jussisaurio
183e0173cd Rename to talk about true/false conditions instead of success/failure 2024-07-27 10:54:03 +03:00
jussisaurio
016379fea4 core/translate: #154: implement WHERE IN (...) 2024-07-26 18:13:05 +03:00
Miguel Oliveira
ba9977957b add docs to pager 2024-07-26 11:27:19 -03:00
jussisaurio
e3cc3da7ca Implement #216: order by column number 2024-07-26 14:35:33 +03:00
Pekka Enberg
35dff7ca2c core: Add module-level docs for translate and vdbe
Let's add module-level documentation for the code generator in
`translate` and the virtual machine in `vdbe`, which are two major
subsystems in the database engine that developers work on mostly.
2024-07-26 10:23:47 +03:00
Pekka Enberg
3290b0a168 Merge pull request #228 from penberg/select-cleanups 2024-07-25 21:14:53 +03:00
Pekka Enberg
ec6f0224ef Merge pull request #224 from ethanniser/add-unicode 2024-07-25 20:37:39 +03:00
Ethan Niser
aa6531f802 add unicode scalar function 2024-07-25 10:05:41 -07:00
Pekka Enberg
9dd505803f core: Move SortInfo to select.rs
It's the only place where it's used.
2024-07-25 17:47:17 +03:00
Pekka Enberg
b25f63f360 core: Move LimitInfo to select.rs
That's the only place where it's used.
2024-07-25 17:47:17 +03:00
Pekka Enberg
16e0e740df core: Rename build_select() to prepare_select()
Let's follow SQLite's naming here.
2024-07-25 17:47:17 +03:00
Pekka Enberg
97afd76865 core: Clean up imports in select.rs 2024-07-25 17:47:17 +03:00
Pekka Enberg
a4afadfd2e core: Select struct documentation 2024-07-25 17:47:17 +03:00
Pekka Enberg
b2f47746a9 core: Move Select struct at the top of select.rs
It's the main data structure of the file so let's make it the first one.
2024-07-25 17:27:45 +03:00
Pekka Enberg
351242561d Kill anyhow usage
Switch anyhow to explicit `LimboError` type using thiserror crate, which
lets us make error handling more structured.
2024-07-25 17:15:08 +03:00
Brayan Jules
78568a53e3 fix format issues 2024-07-24 21:09:36 -04:00
Brayan Jules
529770bf32 bench: fix db lock on benchmark code by splitting the scopes between limbo and rusqlite. 2024-07-24 20:48:17 -04:00
Pekka Enberg
be392d1a4c core: Move translate_select() to select.rs 2024-07-24 21:20:15 +03:00
Pekka Enberg
be91b9aaca core: Move build_select() to select.rs 2024-07-24 21:13:08 +03:00