picovolt 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # PicoVolt (PVDB)
2
2
 
3
3
  [![CI](https://github.com/MiniJe/picovolt/actions/workflows/ci.yml/badge.svg)](https://github.com/MiniJe/picovolt/actions/workflows/ci.yml)
4
- [![Version](https://img.shields.io/badge/version-1.4.0-blue.svg)](CHANGELOG.md)
4
+ [![Version](https://img.shields.io/badge/version-1.5.0-blue.svg)](CHANGELOG.md)
5
5
  [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
6
6
  ![Status: 1.0 stable](https://img.shields.io/badge/status-1.0%20stable-brightgreen.svg)
7
7
  [![GitHub stars](https://img.shields.io/github/stars/MiniJe/picovolt?style=social)](https://github.com/MiniJe/picovolt)
@@ -56,7 +56,7 @@ Linux and Windows. Changes are tracked in [CHANGELOG.md](CHANGELOG.md).
56
56
  | [`engine/mvcc.rs`](src/engine/mvcc.rs) | transaction clock and snapshot visibility |
57
57
  | [`engine/wasm.rs`](src/engine/wasm.rs) | sandboxed `wasmi` extension runtime and the `WasmExec` backend trait |
58
58
  | [`engine/interp.rs`](src/engine/interp.rs) | `pv-wasm`: a from-scratch WASM interpreter (integer subset) |
59
- | [`engine/query.rs`](src/engine/query.rs) | SQL front-end (CREATE/INSERT/UPDATE/DELETE/DROP, `SELECT` with projection, `AS` aliases, `DISTINCT`, aggregates, `GROUP BY`/`HAVING`, `WHERE` predicates incl. `IN`/`BETWEEN`/`IS NULL`/`LIKE`, `BEFORE`, multi-column `ORDER BY`, `LIMIT`) |
59
+ | [`engine/query.rs`](src/engine/query.rs) | SQL front-end (CREATE/INSERT/UPDATE/DELETE/DROP, `SELECT` with projection, `AS` aliases, `DISTINCT`, aggregates, `GROUP BY`/`HAVING`, `WHERE` predicates incl. `IN`/`BETWEEN`/`IS NULL`/`LIKE`, `BEFORE`, multi-column `ORDER BY`, `LIMIT`/`OFFSET`) |
60
60
  | [`engine/compliance.rs`](src/engine/compliance.rs) | optional, app-driven usage-policy hook (not a license requirement) |
61
61
  | [`db.rs`](src/db.rs) | the `Database` surface that ties it together |
62
62
  | [`ffi.rs`](src/ffi.rs) | C ABI (the `capi` feature): a panic-safe, C-callable surface wrapping the engine for Go, Python, and C bindings |
@@ -113,21 +113,22 @@ cargo run --release --example bench # evaluation harness across modes and wor
113
113
  ```
114
114
 
115
115
  Install the first-class CLI with `cargo install picovolt`, then use `pv query`,
116
- `pv inspect`, `pv import`, `pv export`, and `pv bake`. Copyable Rust, Python, Go,
117
- and browser projects are in [`starters/`](starters/README.md); supported adapters
116
+ `pv inspect`, `pv history`, `pv import`, `pv export`, and `pv bake`. Copyable
117
+ Rust, Python, Go, Node, and browser projects are in [`starters/`](starters/README.md); supported adapters
118
118
  are catalogued in [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md).
119
119
 
120
- SQL supported: `CREATE TABLE` with `PRIMARY KEY`, `UNIQUE`, and `NOT NULL`,
121
- `CREATE [UNIQUE] INDEX ON t (col)`, `INSERT`,
122
- `UPDATE ... SET ... WHERE`, `DELETE ... WHERE`, `DROP TABLE`, and
120
+ SQL supported: `CREATE TABLE [IF NOT EXISTS]` with `PRIMARY KEY`, `UNIQUE`, and `NOT NULL`,
121
+ `CREATE [UNIQUE] INDEX ON t (col)`, single- and multi-row `INSERT`,
122
+ `UPDATE ... SET ... WHERE`, `DELETE ... WHERE`, `DROP TABLE [IF EXISTS]`, and
123
123
  `SELECT [DISTINCT] {* | col [AS alias], ... | COUNT/SUM/MIN/MAX/AVG(...) [AS alias]}
124
124
  FROM t [WHERE <pred>] [GROUP BY cols] [HAVING <pred>] [BEFORE tx]
125
- [ORDER BY col [ASC|DESC], ...] [LIMIT n]`, where `<pred>` combines
125
+ [ORDER BY col [ASC|DESC], ...] [LIMIT n] [OFFSET n]`, where `<pred>` combines
126
126
  `col <op> value` (`=`, `!=`, `<`, `<=`, `>`, `>=`, `LIKE`, `NOT LIKE`),
127
127
  `col [NOT] IN (...)`, `col [NOT] BETWEEN a AND b`, and `col IS [NOT] NULL` with
128
128
  `AND`, `OR`, and parentheses. Integer and decimal values compare by magnitude.
129
- Basic `SELECT * FROM a [INNER|LEFT] JOIN b ON a_key = b_key` equality joins are
130
- also supported. Rust callers can cache `Database::prepare(...)` templates and use
129
+ Two-table equality `INNER`/`LEFT JOIN` queries support qualified references,
130
+ projection, aliases, `DISTINCT`, filters, ordering, and pagination. Rust callers
131
+ can cache `Database::prepare(...)` templates and use
131
132
  atomic `Database::transaction(...)` closures with in-memory databases.
132
133
  Durability is selectable via `Database::set_durability` (`Fast` OS-cache default,
133
134
  or crash-safe `Sync` with fsync and an atomic manifest).
@@ -211,6 +212,7 @@ native modules built on the public API. Both are documented in
211
212
  |--|--|
212
213
  | Roadmap | [ROADMAP.md](ROADMAP.md) |
213
214
  | One-million-download plan | [docs/ROADMAP_1M_DOWNLOADS.md](docs/ROADMAP_1M_DOWNLOADS.md) |
215
+ | Platform and file support | [docs/SUPPORT.md](docs/SUPPORT.md) |
214
216
  | Contributing | [CONTRIBUTING.md](CONTRIBUTING.md) |
215
217
  | Code of conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) |
216
218
  | Changelog | [CHANGELOG.md](CHANGELOG.md) |
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "picovolt",
3
3
  "type": "module",
4
4
  "description": "PicoVolt (PVDB): a polymorphic embedded database engine in Rust.",
5
- "version": "1.4.0",
5
+ "version": "1.5.0",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
package/picovolt_bg.wasm CHANGED
Binary file