Visitar URL original
bindings: the #9242 and #9274 tripwires become plain tests (PRs #9270 and #9276), a refused GraphBatch close() keeps the wrapper open by tae898 · Pull Request #192 · humemai/arcadedb-embedded-python · GitHub
Skip to content

bindings: the #9242 and #9274 tripwires become plain tests (PRs #9270 and #9276), a refused GraphBatch close() keeps the wrapper open - #192

Merged
tae898 merged 2 commits into
mainfrom
bindings-flip-9242
Oct 5, 2026
Merged

tae898 merged 2 commits into
mainfrom
bindings-flip-9242

Conversation

@tae898

@tae898 tae898 commented Oct 5, 2026 •

Copy link
Copy Markdown

Summary

ArcadeDB ArcadeData#9270 (26.10.1) makes GraphBatch.createVertices, flush, close, and a newEdge that fills the buffer refuse to run inside a transaction the caller opened. The snapshot image CI uses already carries it, so the seven strict xfail tripwires for ArcadeData#9242 XPASS and fail the suite on every PR.

  • The seven tripwires are plain tests now, and each also asserts the refusal itself (an ArcadeDBError caused by IllegalStateException), not only the untouched transaction.
  • Bindings fix: GraphBatch.close() set _closed in a finally block, so a close() the engine refused inside the caller's transaction marked the wrapper closed while the Java batch stayed open. The retry was then a no-op: the pending edges were never written (2 edges where 3 are expected), and db.graph_batch() on that database failed with 'A GraphBatch is already in progress'. close() now leaves the wrapper open when the refusal came from the caller's transaction.
  • New tests: the retried close(), the refusal before any commit attempt (the retry path that rolled the caller's transaction back needs one), and the caller's WAL setting (a new transaction has isUseWAL() true while the batch is open; it was false on 26.9.1).
  • Docs (known issues, GraphBatch API page, transactions guide) say what 26.10.1 does and what 26.9.1 and earlier do, and keep the order that works on every version.

Also in this PR: the ArcadeData#9274 tripwires

The snapshot image now carries upstream ArcadeData#9276 as well (a null equality is decided at execution, so a plan cached by a run with a value no longer returns the records without a value for a null parameter), so the five strict xfail tests for ArcadeData#9274 XPASS. Each flip alone fails CI on the other's tripwires, so both are in this PR (it replaces #194). They are plain tests now, and the known-issues entry for ArcadeData#9238 and ArcadeData#9274 and the queries guide say what 26.10.1 does and keep the workaround for 26.9.1 and earlier snapshots. Verified in Java on both JDKs with the byte-identical repro (before 111aa40 [1] [2, 3] [1] [2, 3], after d36b4ca [1] [] [1] []) and through the bindings (35 passed in tests/test_null_index_known_issues.py).

Verification

Through the bindings on the CI jar of upstream 5a90b0f (JDK 25 bundled with the wheel): tests/test_graph_batch.py 28 passed. With the 26.9.1 engine jars the new tests fail where they should (the refusal tests, the retried close, the WAL test), so they distinguish the two engines. The full suite in that hybrid environment fails only in numpy and stale-bridge-jar tests that do not touch GraphBatch; CI runs the real image.

Closes #191.
Closes #193.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

tae898 and others added 2 commits October 6, 2026 04:06
…): the ArcadeData#9242 tripwires become plain tests, a refused close() keeps the wrapper open

The engine now raises IllegalStateException from createVertices, flush, close and a newEdge that fills the buffer when the caller has a transaction open, and leaves it untouched. The seven strict xfail tests XPASS on the snapshot image, so they become plain tests that also assert the refusal. A close() the engine refused set the wrapper's closed flag in a finally block while the Java batch stayed open: the retry did nothing, the pending edges were never written, and graph_batch() on the database failed with 'already in progress'. close() now leaves the wrapper open when the refusal came from the caller's transaction. New tests cover the retried close, the refusal before any commit attempt, and the caller's WAL setting. Docs say what 26.10.1 does and what 26.9.1 and earlier do.

Closes #191.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
…Data#9276), known-issues says a null equality matches nothing whichever run planned it

Five strict xfail tests (the statement run with a value, then None, then the value, through an LSM, hash, and ERROR-strategy index, and the DELETE form) pass on the engine with PR ArcadeData#9276, which decides a null equality at execution instead of at planning. They are plain tests now. The known-issues entry for ArcadeData#9238 and ArcadeData#9274 and the queries guide say what 26.10.1 does and keep the workaround for 26.9.1 and earlier snapshots.

Closes #193.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
@tae898
tae898 force-pushed the bindings-flip-9242 branch from cc8e73c to ca86239 Compare October 5, 2026 19:06
@tae898 tae898 changed the title bindings: GraphBatch refuses a caller's transaction (PR #9270): the #9242 tripwires become plain tests, a refused close() keeps the wrapper open bindings: the #9242 and #9274 tripwires become plain tests (PRs #9270 and #9276), a refused GraphBatch close() keeps the wrapper open Oct 5, 2026
@tae898
tae898 merged commit 3e82926 into main Oct 5, 2026
111 of 140 checks passed
@tae898
tae898 deleted the bindings-flip-9242 branch October 5, 2026 22:10
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.

tests: the #9274 tripwires flip once upstream #9276 reaches the snapshot image GraphBatch: #9242 is fixed in the engine; the tripwires flip and a refused close() must leave the wrapper open

1 participant