Commit Graph

605 Commits

Author SHA1 Message Date
Pere Diaz Bou
bbed54d11c core: basic op explain insert 2024-07-31 17:23:16 +02:00
Pekka Enberg
0c703a228d testing: Make individual test files executable
Each test file is standalone to make it easy to run just some specific
tests. However, some of the files didn't have the executable bit.
2024-07-29 09:41:40 +03:00
Pekka Enberg
86e8a90475 Merge pull request #245 from penberg/process-where-before-opening-loops 2024-07-28 18:58:20 +03:00
Pekka Enberg
2b7c350676 Merge pull request #246 from macroexpansion/feature/add-rtrim-scalar-function 2024-07-28 18:30:09 +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
877dc76ee9 Update COMPAT.md 2024-07-27 16:06:00 +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
Pekka Enberg
1c817b5059 Merge pull request #235 from mvares/mvares/docs 2024-07-26 20:13:58 +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
Pekka Enberg
3597089b26 Merge pull request #234 from jussisaurio/fix-216-order-by-column-number
Implement #216: order by column number
2024-07-26 14:55:34 +03:00
jussisaurio
e3cc3da7ca Implement #216: order by column number 2024-07-26 14:35:33 +03:00
Pekka Enberg
a1093501a0 Merge pull request #232 from penberg/module-docs
core: Add module-level docs for translate and vdbe
2024-07-26 12:27:57 +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
adf4b64e1e Merge pull request #231 from penberg/fix-do_execsql_test
testing: Fix do_execsql_test() for JSON
2024-07-26 09:55:19 +03:00
Pekka Enberg
5251f7a2f8 testing: Fix do_execsql_test() for JSON
The current scheme of combining SQL statements corrupts JSON by dropping
the curly braces. Fix the issue by passing the SQL statement almost as-is
to the database. However, for ".schema" to work, we need to trim extra
whitespace.
2024-07-26 09:48:48 +03:00
Pekka Enberg
0d5b4814ad Update CHANGELOG.md 2024-07-25 21:24:29 +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
fcc087b85c Merge pull request #227 from penberg/drop-anyhow
Kill anyhow usage
2024-07-25 17:20: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
Pekka Enberg
341240740a cli: Improve CLI prompt
Let's print out Limbo version at CLI start and change the prompt to have
"limbo" prefix.
2024-07-25 15:25:46 +03:00
Pekka Enberg
24433177f1 Merge pull request #226 from penberg/no-build-for-sqlite3-compat
github: Don't build Limbo for SQLite3 compat tests
2024-07-25 14:16:29 +03:00
Pekka Enberg
f6cacb5bf8 github: Don't build Limbo for SQLite3 compat tests 2024-07-25 12:12:33 +03:00
Pekka Enberg
3ed5bb3af1 Merge pull request #223 from brayanjuls/bench_db_lock_fix 2024-07-25 08:07:48 +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
b194d5fbdf Merge pull request #221 from penberg/github-cargo-bench 2024-07-24 21:59:33 +03:00
Pekka Enberg
d9c1c5b9ac Merge pull request #219 from penberg/select-cleanups 2024-07-24 21:59:15 +03:00
Pekka Enberg
3d0a7b3e34 github: Add cargo bench to CI
Let's run `cargo bench` just to make sure we don't keep breaking it all
the time. As a follow up, it would be cool to upload the results to
Nyrkiö, for example.
2024-07-24 21:40:53 +03:00