From 3f7cb91ef7ae44d3f641f2e77826965fcd0afeed Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Tue, 25 Nov 2025 15:59:08 -0300 Subject: Pseudo-REPL and sketch planner (#12) --- src/operations.erl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/operations.erl') diff --git a/src/operations.erl b/src/operations.erl index d91eec9..36fb7e2 100644 --- a/src/operations.erl +++ b/src/operations.erl @@ -951,7 +951,10 @@ select_loop(ChildPid, Predicate) -> end; done -> close_iterator(ChildPid), - Caller ! done + Caller ! done; + {error, Reason} -> + close_iterator(ChildPid), + Caller ! {error, Reason} end; stop -> close_iterator(ChildPid), @@ -1008,7 +1011,10 @@ project_loop(ChildPid, Attributes) -> project_loop(ChildPid, Attributes); done -> close_iterator(ChildPid), - Caller ! done + Caller ! done; + {error, Reason} -> + close_iterator(ChildPid), + Caller ! {error, Reason} end; stop -> close_iterator(ChildPid), @@ -1092,7 +1098,10 @@ take_iter_loop(ChildPid, Limit, Count, OriginalN) when Count < Limit -> take_iter_loop(ChildPid, Limit, Count + 1, OriginalN); done -> close_iterator(ChildPid), - Caller ! done + Caller ! done; + {error, Reason} -> + close_iterator(ChildPid), + Caller ! {error, Reason} end; stop -> close_iterator(ChildPid), @@ -1343,6 +1352,7 @@ equijoin_emit_loop(LeftIter, RightTuples, JoinAttr) -> end end; {error, Reason} -> + close_iterator(LeftIter), Caller ! {error, Reason}, ok % Stop after sending error end; @@ -1396,6 +1406,7 @@ theta_join_emit_loop(LeftIter, RightTuples, Pred) -> theta_join_emit_buffered(LeftIter, RightTuples, Pred, RestMatches) end; {error, Reason} -> + close_iterator(LeftIter), Caller ! {error, Reason} end; stop -> -- cgit v1.2.3