Skip to content

Update Squirreling to 0.16.15 and trim SQL guidance - #2838

Merged
HypForge merged 3 commits into
masterfrom
update/squirreling-0.16.15
Oct 29, 2026
Merged

HypForge merged 3 commits into
masterfrom
update/squirreling-0.16.15

Conversation

@bgmcmullen

Copy link
Copy Markdown
Contributor

Squirreling 0.16.15 supports boolean truth predicates and functions that the SQL reference previously marked unsupported. Bump the exact dependency pin from 0.16.13 and shorten sql.md by 53%, removing obsolete restrictions and redundant feature descriptions while keeping verified dialect limits, dataset guidance, and scan/memory cautions. Older installations and remote deployments may still differ.

Icebird 0.9.2 pins an older Squirreling AST type. Widen the shared converter's type boundary without changing the function: it already safely declines the new boolean unary operators. Add parquet regression coverage for true/false/null and compound predicates.

Validation:

  • npm run typecheck: passed.
  • Parquet source tests: 29 passed.
  • npm test outside the sandbox: 9,003 passed, 7 skipped, 3 timing failures in wizard closing-pipe and remote-login attachment tests. Both affected test files passed isolated reruns (22 and 10 tests). The full suite was not entirely green.
  • Direct SQL probes confirmed newly supported functions and remaining restrictions; git diff --check passed.

CPU/memory review: the compatibility adjustment adds no runtime wrapper, allocation, or per-row work. The existing converter and fallback paths remain intact; boolean truth predicates can require engine filtering. No added CPU or memory concern found in the HypAware changes.

@bgmcmullen bgmcmullen added the neutral:adopt Foreign PR adopted into neutral's reconcile scope label Oct 28, 2026
@HypForge HypForge added the neutral:adopted Adoption completion record: merged while carrying neutral:adopt (LLP 0031) label Oct 28, 2026
Older installs and remotes still refuse IS [NOT] TRUE/FALSE,
JSON_EXTRACT_SCALAR, GROUP_CONCAT, CHR and NOW(); the trimmed
reference no longer said what to use there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@HypForge

Copy link
Copy Markdown
Contributor

HypForge review (R2, final) at 1fe97e5: LOW after fix.

R1 at d96659b found one issue, fixed on this branch in 1fe97e5:

  1. sql.md dropped the notes for IS [NOT] TRUE/IS [NOT] FALSE, JSON_EXTRACT_SCALAR, GROUP_CONCAT, CHR and NOW(). These still fail on any target below squirreling 0.16.15, which includes a remote until its server picks up this release. One sentence now names the five and their fallbacks (col = true, JSON_EXTRACT_STRING, STRING_AGG(col, ',')).

Correctness

  • Package claims checked against the published tarballs: 0.16.15 adds the four boolean truth unary ops and the four functions. Probed with executeSql: all five work on 0.16.15 and fail on 0.16.13. DATE_TRUNC on a timestamp column works on both, so the dropped CAST is fine.
  • Pushdown fallback: icebird 0.9.2 still pins squirreling 0.16.9, so whereToParquetFilter declines the new ops and the engine filters after the scan. The new test covers all seven predicates; parquet-source 29/29.
  • The other trimmed sql.md notes are permissive or covered by SKILL.md; dropping them cannot make a query fail. The memory, correlated-scan, column-name, time-filter and JSON cautions are kept.

CPU and memory: our change is a type cast and a docs edit. The 0.16.15 engine's dynamic filter caps per-column key sets at 256 and pushes an IN list into the scan; hash, semi and EXISTS joins now build the right side first (they already held it in full). Bounded, no new unbounded state. No concern.

Gates

  • Server-suite gate: not triggered. Dependency bump, skills docs and a type cast only; no CLI command, MCP codec, contract.js or kernel type change.
  • Tests: full suite locally 9010 pass, 0 fail of 9013.
  • CI green at 1fe97e5 (Node 22/24/26), no flakes on either head.

Landing via the merge queue. This ships with the next Publish; there is no deploy.

@HypForge
HypForge added this pull request to the merge queue Oct 28, 2026
@HypForge
HypForge removed this pull request from the merge queue due to a manual request Oct 28, 2026
….md"

This reverts commit 1fe97e5 at the
author's request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@HypForge

Copy link
Copy Markdown
Contributor

HypForge review (R2, final) at a5998bc: LOW, clean.

At R1 HypForge added one sentence to hypaware-query/sql.md (1fe97e5). It named the 0.16.15-only SQL features and their fallbacks for older installs. You chose to drop it, so a5998bc reverts that commit and the branch content is your d96659b again. Whether the skill names older-install fallbacks is your call, and it is dropped at your word.

Correctness

  • Both published tarballs were checked. 0.16.15 adds the IS [NOT] TRUE/FALSE operators and the GROUP_CONCAT, CHR, NOW and JSON_EXTRACT_SCALAR functions. All five work on 0.16.15 and fail on 0.16.13. The "not parsed" notes that sql.md drops are therefore correct to drop for 0.16.15.
  • icebird 0.9.2 still pins an older squirreling AST. Its pushdown converter declines the new unary operators, and the new parquet-source test shows the engine still returns the right rows for all seven truth predicates.

CPU and memory: our side is a type cast and a docs edit, with no runtime cost. In the 0.16.15 engine, the dynamic filter's per-column key sets are capped at 256, and the join changes build the right side before the probe, which they already held in full. Everything is bounded, with no new unbounded state. No concern.

Gates

  • Server-suite gate: not triggered. The PR is a dependency bump, skill docs and a type cast; there is no CLI command, MCP codec, contract.js or kernel type change.
  • CI green at a5998bc: https://github.com/hyparam/hypaware/actions/runs/40789944266. The first attempt failed one daemon test on Node 26 (daemon-port-conflict-retry.test.js:410, open file descriptors 26 vs 25), which is unrelated to this diff. The failed jobs were rerun, and they passed.

Landing via the merge queue. This ships with the next Publish; there is no deploy.

@HypForge
HypForge added this pull request to the merge queue Oct 28, 2026
Merged via the queue into master with commit 3081aa4 Oct 29, 2026
11 of 15 checks passed
@HypForge
HypForge deleted the update/squirreling-0.16.15 branch October 29, 2026 00:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

neutral:adopt Foreign PR adopted into neutral's reconcile scope neutral:adopted Adoption completion record: merged while carrying neutral:adopt (LLP 0031)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants