Draft
Conversation
❌ 1 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
Contributor
|
🏋️ Load test triggered for 38e4688. Results will be posted here when complete. |
Contributor
✅ Deploy Preview for electric-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
c7da8bb to
f33c781
Compare
Contributor
|
🏋️ Load test triggered for f33c781. Results will be posted here when complete. |
Contributor
|
🏋️ Load test triggered for 6715aea. Results will be posted here when complete. |
Contributor
Contributor
6715aea to
6669eb8
Compare
Add active_conditions support to the sync protocol as a backward-compatible change, preparing for OR/NOT in WHERE clauses. Elixir client (from #3791): - Tags become {position, hash} tuples with slash-delimited wire format - active_conditions tracking and DNF visibility evaluation - disjunct_positions derived once per shape, shared across keys Server (minimal changes for simple case): - Add active_conditions field to NewRecord/UpdatedRecord/DeletedRecord - Include active_conditions in JSON headers when present - Compute active_conditions: [true, ...] for shapes with subqueries - Include active_conditions in snapshot SQL queries - Read Electric-Protocol-Version header from HTTP requests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a new ETS-backed reverse index module (SubqueryIndex) that stores per-position metadata and shape-handle polarity for subquery filtering. Wire it into Filter.add_shape/remove_shape to register/unregister shapes with compiled DnfPlan positions. Shapes start in a fallback set until their consumer seeds dynamic membership. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add subquery_member_from_index/2 to WhereClause that creates a subquery_member? callback backed by the SubqueryIndex ETS table. This enables filter-side exact verification without loading full MapSet views, replacing the old refs_fun-backed path. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Make SubqueryIndex ETS table :public and discoverable via persistent_term so consumers can write membership entries. Consumer seeds initial views into the index during initialize_subquery_runtime and marks shapes ready. Dynamic updates are applied by diffing routing views before/after each subquery state transition, with conservative projections during buffering (union for positive, intersection for negated dependencies). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the unconditional subquery_shape_ids_for_table union in shapes_affected_by_record with reverse-index candidate lookup plus exact WHERE clause verification. Candidate shapes are verified against the full predicate using the SubqueryIndex-backed subquery_member? callback. Fallback shapes (not yet seeded by their consumer) pass through without verification for safety. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…Stage 6) Remove refs_fun from Filter struct and WhereCondition - subquery evaluation now uses SubqueryIndex-backed callbacks exclusively. Replace the unconditional subquery_shape_ids_for_table union with reverse-index candidate lookup in shapes_affected_by_record. Re-enable the previously skipped OR+subquery test which now works correctly with seeded index membership. Update existing tests to clarify they test fallback (unseeded) behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ng move-in The subquery buffering state machine can accumulate transactions indefinitely while waiting for a move-in query to complete. Add a configurable limit (default 1000) that emits a :shutdown action when exceeded, terminating the shape and triggering a 409 must-refetch for clients. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6669eb8 to
a1e0fc1
Compare
226f9b3 to
203f4fc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.