aboutsummaryrefslogtreecommitdiffstats
path: root/src/xml_server.erl
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2025-12-14 00:27:18 -0300
committerGitHub <noreply@github.com>2025-12-14 00:27:18 -0300
commitff5691ffb1a969e50e0bd5e4638be8e2bb342c4e (patch)
tree565346b82901f2ee26cb49b04e1e99ba1fb0e896 /src/xml_server.erl
parent0862cd7c3fe4fbb5b56a0a87c3789c8361bc022c (diff)
downloadSakura-ff5691ffb1a969e50e0bd5e4638be8e2bb342c4e.tar.gz
Sakura-ff5691ffb1a969e50e0bd5e4638be8e2bb342c4e.zip
Ephemeral relations, Refactor & Cleanup (#34)
Diffstat (limited to '')
-rw-r--r--src/xml_server.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/xml_server.erl b/src/xml_server.erl
index 4eef4c9..eaa08f9 100644
--- a/src/xml_server.erl
+++ b/src/xml_server.erl
@@ -33,7 +33,7 @@
%%% xml_server:start(8080).
%%%
%%% % Client connects and sends:
-%%% % QUERY {scan, employees}\n
+%%% % QUERY employees\n
%%% % NEXT &lt;session-id&gt; 10\n
%%% % NEXT &lt;session-id&gt; 10\n
%%% % CLOSE &lt;session-id&gt;\n
@@ -209,9 +209,12 @@ handle_query(QueryStr, DB, Sessions) ->
{ok, Exprs} = erl_parse:parse_exprs(Tokens),
{value, QueryPlan, _} = erl_eval:exprs(Exprs, erl_eval:new_bindings()),
- % Prepare and execute query to get iterator
+ % Prepare and execute query to get ephemeral relation
PreparedPlan = query_planner:prepare(QueryPlan),
- Iterator = query_planner:execute(DB, PreparedPlan),
+ EphemeralRelation = query_planner:execute(DB, PreparedPlan),
+
+ % Create actual iterator from ephemeral relation's generator
+ Iterator = (EphemeralRelation#relation.generator)(),
% Generate session ID
SessionId = generate_session_id(),