aboutsummaryrefslogtreecommitdiffstats
path: root/src/xml_server.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/xml_server.erl')
-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 <session-id> 10\n
%%% % NEXT <session-id> 10\n
%%% % CLOSE <session-id>\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(),