diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2025-12-14 00:27:18 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-14 00:27:18 -0300 |
| commit | ff5691ffb1a969e50e0bd5e4638be8e2bb342c4e (patch) | |
| tree | 565346b82901f2ee26cb49b04e1e99ba1fb0e896 /src/xml_server.erl | |
| parent | 0862cd7c3fe4fbb5b56a0a87c3789c8361bc022c (diff) | |
| download | Sakura-ff5691ffb1a969e50e0bd5e4638be8e2bb342c4e.tar.gz Sakura-ff5691ffb1a969e50e0bd5e4638be8e2bb342c4e.zip | |
Ephemeral relations, Refactor & Cleanup (#34)
Diffstat (limited to '')
| -rw-r--r-- | src/xml_server.erl | 9 |
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(), |
