Skip to content

bindings docs: known issues for upstream #9014, #9017, #9021, and #9027, with workaround tests and strict xfail tripwires - #109

Merged
tae898 merged 2 commits into
mainfrom
docs-declared-type-known-issues
Oct 3, 2026
Merged

tae898 merged 2 commits into
mainfrom
docs-declared-type-known-issues

Conversation

@tae898

@tae898 tae898 commented Oct 3, 2026

Copy link
Copy Markdown

Closes #106.

Four engine findings from today's schema hunt reach Python users and are wrong answers or wrong stored values, which is what this page lists. Each was measured through the bindings on a 26.10.1 snapshot, with the workaround checked on the same reproduction.

tests/test_declared_type_known_issues.py has a test of each workaround and a strict xfail per finding that fails the suite when an engine fix reaches the wheel. I ran the xfail tests with --runxfail to confirm each fails on its intended assertion ([1, 2, 3, 4] against five records, [12] against [], DID NOT RAISE, 0 != 0). The page header now says what a Tests: line means. ArcadeData#9024 has no entry: a Python int past int64 raises OverflowError before the engine sees it.

Rebased onto #105 (the two entries append to the same place; both kept). Full suite on a wheel built from the cecb369 engine: 503 passed, 3 skipped, 11 xfailed. black and bandit (run after the formatter this time) are clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DeKEhHXJTy1H1GgbfBZ8mL

tae898 and others added 2 commits October 3, 2026 19:26
…9017, ArcadeData#9021, and ArcadeData#9027, with workaround tests and strict xfail tripwires (#106)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DeKEhHXJTy1H1GgbfBZ8mL
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DeKEhHXJTy1H1GgbfBZ8mL
@tae898
tae898 merged commit 98af786 into main Oct 3, 2026
48 checks passed
@tae898
tae898 deleted the docs-declared-type-known-issues branch October 3, 2026 12:22
tae898 added a commit that referenced this pull request Oct 4, 2026
…le records, and re-pin rows 60-64 (#162)

* /next page: LSQB's id-form queries, the narrow analytical view, sparse whole records, and the documents load in the list of what the next measurement changes

- Graph OLAP (l2olap, pending; appears when the table lands): a sentence
  that the LSQB queries a row without `lsqb_text` measured (of q5, q6, q8,
  and q9, named as the table's columns name them) compared the matched
  nodes' ids where LSQB's own text compares the nodes, which keeps ArcadeDB
  off the operators it has for them and slows other engines too, and that
  the next measurement runs LSQB's own text (BUGS F174, DECISIONS #154
  items 1 and 2; export_web._lsqb_id_form_note). page_check checks the
  disclosure the way it checks F169's.
- Graph OLAP: a sentence that ArcadeDB's Graph Analytical View covers only
  the persons and their friendships, so no LSQB query can use it, and that
  the next measurement builds it over every type and keeps the rows without
  it; keyed on ArcadeDB with-view rows without `gav_types` (DECISIONS #154
  item 3).
- Sparse vector search (l3s): a sentence that each ArcadeDB search returns
  every hit's whole record while every other engine returns ids; keyed on
  ArcadeDB sparse rows without `sparse_result` (DECISIONS #153 item 1).
- Page-level list: one line each for the LSQB text, the view over every
  type, the sparse ids (each shown while its table sentence is on the
  page), and ArcadeDB embedded's columnar documents load, keyed directly on
  the ArcadeDB embedded documents rows without `columnar_insert`, since the
  tables' ingest-path sentence already says what ran (DECISIONS #153 item 2).
- CAMPAIGN section 7 rows 60-64: LSQB's own text on every engine and the
  #109 re-decision; the view over every type; the sparse arms return ids;
  the documents lane's columnar insert once own issue #150 ships (the
  user's choice over my recommendation); the sparse multipass driver keeps
  each comparator's version (F173, own issue #158).

Payload regenerated by refresh_web_page steps 2 and 3 by hand
(BENCH_ENGINE_COMMIT=417314c18, BENCH_INSTRUMENT=2026-10,
BENCH_ONLY_LANES=e2,l1tpc,l2,l3s,lifecycle; untracked runs.jsonl,
e4decomp_417314c18, and sparse_mp_417314c18 copied from the main
checkout); the unchanged generator reproduced the tracked payload byte for
byte first. No table, entry, cell, column, or top-level field changed: l3s
gains one condition, the page conditions gain two lines, and
condition_provenance gains their three records. Gates: equivalence,
provenance, fairness, version consistency, version pin, and structure ok
with logs identical to the baseline; page_check against the real site
rc=0, 0 condition findings. The l2olap sentences and list lines were
checked on stand-in rows (the laptop skeleton's sf1 graph analytics rows at
sf1full): they render, name LSQB Q5 and LSQB Q8 when q6 and q9 are
excluded at the tier, and leave with `lsqb_text`, `gav_types`,
`sparse_result`, and `columnar_insert` set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

* /next page: the LSQB id-form sentence says only what holds for every query it can name

On the real October rows the l2olap sentence names LSQB Q5 and LSQB Q8
(q6 and q9 are excluded at sf1full), and two clauses were not sourced for
those two: "the operators it has for these queries" (the hunt found count
operators for q5, q6, and q9, not q8) and "slows other engines too"
(measured on Neo4j, on q9 only). The second sentence now reads "The answers
are the same either way, but on the build measured here the id form keeps
ArcadeDB on a slower plan than LSQB's own text gets.", which holds at the
pin for each of q5, q6, q8, and q9 with and without the lane's view
(perf-lsqb-q9-20261004 out/summary-all-runs.md, recA1-oct and recA2-oct;
q5's order reverses on newer main, hence "the build measured here"). The
page_check docstring, the exporter comment, and CAMPAIGN row 60's status
say the same. The page-list item is unchanged.

Payload regenerated the same way (refresh_web_page steps 2 and 3 by hand):
byte-identical to the previous commit's, since l2olap is pending. Gates:
equivalence, provenance, fairness, version consistency, version pin, and
structure ok; page_check against the real site rc=0, 0 condition findings;
every gate log identical to the previous commit's run. Stand-in rows render
the new sentence for LSQB Q5 and LSQB Q8 and for all four, page_check
reports it disclosed (and missing once removed), and `lsqb_text` retires it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bindings docs: known issues for upstream #9014, #9017, #9021, and #9027, wrong answers and wrong stored values in declared properties

1 participant