SQLite
Verification
Scope
Expression pipelines, grouped windows, counts, and joins on a SQLite table through Phibble\tbl(). Results compared with DataFrame or with expected values; lazy evaluation in SQL and the in-memory fallback for closures.
References
- Reference
- phplyr on phibble's DataFrame, and expected values in the tests
- Versions
- PHP 8.5.10, phibble v0.8.0 (9e63ca5)
Data
- panel.csv
- 12 rows: id, g, year, value, score, label. Loaded into an in-memory SQLite database with declared column types. Source
Method
tests/SqlTest.php loads panel.csv into an in-memory SQLite database, runs each pipeline on the SQLite table and on DataFrame, and checks the class of each result. Values compared is the number of assertions in a case; a case fails if any assertion fails.
- Check
- End-to-end run with the external program
- Recorded
- 2026-11-02, PHP 8.5.10, macOS (arm64), commit 65e6a46
Tolerances
|x − r| ≤ 1e-9 + 1e-9 × max(|r|, 1)
Applies to: Floating-point values
exact equality
Applies to: Column names, row counts and order, strings, integers, booleans, dates, and missing values
x: package value; r: reference value. Absolute error: |x − r|. Relative error: |x − r| / max(|r|, 1). Max errors are over the values a row compares.
Results
4 comparisons: 4 pass, 0 fail, 0 skipped.
| Case | Quantity | Criterion | Values | Max abs. error | Max rel. error | Status |
|---|---|---|---|---|---|---|
| Keeps expression pipelines lazy and matches the in-memory result | Table values | |x − r| ≤ 1e-9 + 1e-9 × max(|r|, 1) | 18 | 0 | 0 | pass |
| Runs grouped windows, counts and joins in SQL | Values | exact equality | 66 | pass | ||
| Falls back to memory for closures | Values | exact equality | 2 | pass | ||
| Accepts Phibble\Expr nodes directly and stays lazy | Values | exact equality | 3 | pass |
Reproduction
bin/site-verifications
- Raw record
- site/verifications/sqlite.json