This PR adds support for `count(*)`. I did not find any other functions than `count` which expect a `*` argument yet, but I'm sure there are some?
Surprisingly (to me) I did not need to make any changes to `translate_expr`, only to `analyze_expr`.
```
limbo> SELECT count(id) FROM users;
2
limbo> SELECT count(*) FROM users;
2
limbo> SELECT count(*) FROM users where id = 1;
1
limbo> SELECT count(id) FROM users where id = 1;
1
```
Other aggregation functions such as sum fail, since they expect a specific column:
```
limbo> select sum(*) from users;
Parse error: sum bad number of arguments
```
Closes#285
This pull request introduces the initial setup for the Python bindings
(#248).
- Setup Configuration: Added the Python binding stack, including the
`pyo3 `crates, `pyproject.toml`, `build.rs`, and other necessary
files.
- Database Class: Implemented the Database class with a constructor to
establish a connection and a query function to execute SQL queries.
- Testing: Created `database.db` with a sample users table and two
entries, as outlined in README.md, and added three pytest functions to
validate the Python output.
Closes#276
Adding the foundational helpers for integrating with supporting datetime Functions modifiers later.
part of https://github.com/penberg/limbo/issues/158.
Integrating with date time functions in `vdbe` `Program.step` will come in other PRs later.
reference to sqlite eaa560f3fc/src/date.c (L723)Closes#277
This adds a basic VFS interface to use Node filesystem API from Rust
code. Not a lot, but parses the SQLite database file header and
completes database open without errors.
Fix#260 by ensuring `Ctrl-C` interrupts the query without terminating
the process. Implement the SQLite strategy where pressing `Ctrl-C` twice
exits the shell.
Closes#269
saw you were building a windows bin but not a ps installer and thought i would turn it off. also turned on github attestations because why not.
`cargo dist plan` is basically the same as before but now also produces the PS installer.
```
announcing v0.0.3
limbo 0.0.3
source.tar.gz
[checksum] source.tar.gz.sha256
limbo-installer.sh
limbo-installer.ps1
limbo-aarch64-apple-darwin-update
limbo-aarch64-apple-darwin.tar.xz
[bin] limbo
[misc] CHANGELOG.md, LICENSE.md, README.md
[checksum] limbo-aarch64-apple-darwin.tar.xz.sha256
limbo-x86_64-apple-darwin-update
limbo-x86_64-apple-darwin.tar.xz
[bin] limbo
[misc] CHANGELOG.md, LICENSE.md, README.md
[checksum] limbo-x86_64-apple-darwin.tar.xz.sha256
limbo-x86_64-pc-windows-msvc-update
limbo-x86_64-pc-windows-msvc.zip
[bin] limbo.exe
[misc] CHANGELOG.md, LICENSE.md, README.md
[checksum] limbo-x86_64-pc-windows-msvc.zip.sha256
limbo-x86_64-unknown-linux-gnu-update
limbo-x86_64-unknown-linux-gnu.tar.xz
[bin] limbo
[misc] CHANGELOG.md, LICENSE.md, README.md
[checksum] limbo-x86_64-unknown-linux-gnu.tar.xz.sha256
```
Closes#263