diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2025-11-25 15:59:08 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-25 15:59:08 -0300 |
| commit | 3f7cb91ef7ae44d3f641f2e77826965fcd0afeed (patch) | |
| tree | adb493947fe7c3ee511346c984f8046b4c48856e /src/operations.erl | |
| parent | 62a017ce95ad2f6d9445b5b96f7aeba3f7c0d42f (diff) | |
| download | Sakura-3f7cb91ef7ae44d3f641f2e77826965fcd0afeed.tar.gz Sakura-3f7cb91ef7ae44d3f641f2e77826965fcd0afeed.zip | |
Pseudo-REPL and sketch planner (#12)
Diffstat (limited to '')
| -rw-r--r-- | src/operations.erl | 17 |
1 files changed, 14 insertions, 3 deletions
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 -> |
