Skip to content

fix: document subqueries algorithm and fix double insert issue#3954

Open
icehaunter wants to merge 4 commits intomainfrom
ilia/subqueries-alignment
Open

fix: document subqueries algorithm and fix double insert issue#3954
icehaunter wants to merge 4 commits intomainfrom
ilia/subqueries-alignment

Conversation

@icehaunter
Copy link
Contributor

No description provided.

@icehaunter icehaunter requested a review from robacourt March 4, 2026 14:33
@icehaunter icehaunter changed the title Document subqueries algorithm and fix double insert issue fix: document subqueries algorithm and fix double insert issue Mar 4, 2026
@codecov
Copy link

codecov bot commented Mar 4, 2026

❌ 3 Tests Failed:

Tests completed Failed Passed Skipped
2494 3 2491 1
View the top 3 failed test(s) by shortest run time
Elixir.Electric.ShapeCache.ShapeStatusTest::property least_recently_used/2 returns correct number of shapes in LRU order
Stack Traces | 0s run time
9) property least_recently_used/2 returns correct number of shapes in LRU order (Electric.ShapeCache.ShapeStatusTest)
     .../electric/shape_cache/shape_status_test.exs:247
     ** (ExUnit.TimeoutError) property timed out after 60000ms. You can change the timeout:

       1. per test by setting "@tag timeout: x" (accepts :infinity)
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)
       3. globally via "ExUnit.start(timeout: x)" configuration
       4. by running "mix test --timeout x" which sets timeout
       5. or by running "mix test --trace" which sets timeout to infinity
          (useful when using IEx.pry/0)

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).

     stacktrace:
       (kernel 10.4.1) code_server.erl:163: :code_server.call/1
       (kernel 10.4.1) code_server.erl:163: :code_server.call/1
       (kernel 10.4.1) code.erl:578: :code.ensure_loaded/1
       (elixir 1.19.1) lib/code.ex:2133: Code.ensure_compiled/2
       (electric 1.4.11) .../replication/eval/walker.ex:1: Electric.Walkable.impl_for/1
       (electric 1.4.11) .../replication/eval/walker.ex:11: Electric.Walkable.children/1
       (electric 1.4.11) .../replication/eval/walker.ex:54: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:154: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
       (elixir 1.19.1) lib/enum.ex:5023: Enumerable.List.reduce/3
       (elixir 1.19.1) lib/enum.ex:2574: Enum.reduce_while/3
       (electric 1.4.11) .../replication/eval/walker.ex:57: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:170: Electric.Replication.Eval.Walker.process_children/6
       (electric 1.4.11) .../replication/eval/walker.ex:145: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
       (elixir 1.19.1) lib/enum.ex:5023: Enumerable.List.reduce/3
       (elixir 1.19.1) lib/enum.ex:2574: Enum.reduce_while/3
       (electric 1.4.11) .../replication/eval/walker.ex:57: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:154: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
       (elixir 1.19.1) lib/enum.ex:5023: Enumerable.List.reduce/3
       (elixir 1.19.1) lib/enum.ex:2574: Enum.reduce_while/3
       (electric 1.4.11) .../replication/eval/walker.ex:57: Electric.Replication.Eval.Walker.accumulating_fold/5
Elixir.Electric.ShapeCache.ShapeStatusTest::test high concurrency add and delete of the same shape should never fail
Stack Traces | 0s run time
6) test high concurrency add and delete of the same shape should never fail (Electric.ShapeCache.ShapeStatusTest)
     .../electric/shape_cache/shape_status_test.exs:294
     ** (ExUnit.TimeoutError) test timed out after 60000ms. You can change the timeout:

       1. per test by setting "@tag timeout: x" (accepts :infinity)
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)
       3. globally via "ExUnit.start(timeout: x)" configuration
       4. by running "mix test --timeout x" which sets timeout
       5. or by running "mix test --trace" which sets timeout to infinity
          (useful when using IEx.pry/0)

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).

     stacktrace:
       (kernel 10.4.1) code_server.erl:163: :code_server.call/1
       (kernel 10.4.1) code.erl:578: :code.ensure_loaded/1
       (elixir 1.19.1) lib/code.ex:2133: Code.ensure_compiled/2
       (electric 1.4.11) .../replication/eval/walker.ex:1: Electric.Walkable.impl_for/1
       (electric 1.4.11) .../replication/eval/walker.ex:11: Electric.Walkable.children/1
       (electric 1.4.11) .../replication/eval/walker.ex:54: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:154: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
       (elixir 1.19.1) lib/enum.ex:5023: Enumerable.List.reduce/3
       (elixir 1.19.1) lib/enum.ex:2574: Enum.reduce_while/3
       (electric 1.4.11) .../replication/eval/walker.ex:57: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:170: Electric.Replication.Eval.Walker.process_children/6
       (electric 1.4.11) .../replication/eval/walker.ex:145: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
       (elixir 1.19.1) lib/enum.ex:5023: Enumerable.List.reduce/3
       (elixir 1.19.1) lib/enum.ex:2574: Enum.reduce_while/3
       (electric 1.4.11) .../replication/eval/walker.ex:57: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:154: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
       (elixir 1.19.1) lib/enum.ex:5023: Enumerable.List.reduce/3
       (elixir 1.19.1) lib/enum.ex:2574: Enum.reduce_while/3
       (electric 1.4.11) .../replication/eval/walker.ex:57: Electric.Replication.Eval.Walker.accumulating_fold/5
       (electric 1.4.11) .../replication/eval/walker.ex:154: anonymous fn/5 in Electric.Replication.Eval.Walker.process_child_groups/5
Elixir.Electric.ShapeCacheTest::test get_or_create_shape_handle/2 against real db crashes when initial snapshot query fails to return data quickly enough
Stack Traces | 0s run time
12) test get_or_create_shape_handle/2 against real db crashes when initial snapshot query fails to return data quickly enough (Electric.ShapeCacheTest)
     test/electric/shape_cache_test.exs:501
     ** (EXIT from #PID<0.9494.0>) killed
test/client.test.ts > should fall back to long polling after 3 consecutive short SSE connections
Stack Traces | 0.314s run time
AssertionError: expected 5 to be less than or equal to 4
 ❯ test/client.test.ts:2912:37

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@blacksmith-sh
Copy link
Contributor

blacksmith-sh bot commented Mar 4, 2026

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
Elixir.Electric.ShapeCache.ShapeStatusTest/property least_recently_used/
2 returns correct number of shapes in LRU order
View Logs
Elixir.Electric.ShapeCache.ShapeStatusTest/
test high concurrency add and delete of the same shape should never fail
View Logs
Elixir.Electric.ShapeCacheTest/test get_or_create_shape_handle/
2 against real db crashes when initial snapshot query fails to return data quickly enou
gh
View Logs
test/client.test.ts/
should fall back to long polling after 3 consecutive short SSE connections
View Logs

Fix in Cursor

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.

1 participant