Project

General

Profile

Feature #59

ItqlInterpreter refactoring

Added by Paula Gearon over 15 years ago. Updated over 14 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Mulgara
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
fixed

Description

Currently [[ItqlInterpreter]] takes a string, parses it into a command AST, and executes it.  Execution uses information out of the AST for managing sessions.
<br/>

<br/>
We need to split [[ItqlInterpreter]] into classes which perform parsing, perform execution, and manage sessions.  This will allow the same mechanism to be shared between 3 separate paradigms:
<br/>
1.  Client parsing, establishing connections, and sending AST to server (current implementation).
<br/>
2.  Client connects to server, sends raw string.  Server parses TQL and executes on local session.
<br/>
3.  Client connects to server, sends raw string.  Server parses SPARQL and executes on local session.
<br/>

<br/>
Allowing options 2 and 3 has several advantages:
<br/>
- Closer to what happens with databases like [[MySQL]], and presents a much more portable paradigm.
<br/>
- Allows easier avoidance of &quot;session management&quot; when a task inside the server JVM wishes to execute a query (such as in the Krule engine).
<br/>
- This is the required paradigm for SPARQL protocol.
<br/>
- Better separation of tasks than currently exists in [[ItqlInterpreter]].
<br/>
- Permits clients to perform connection pooling.
<br/>
- Allows client transaction API that is separated from the query language.

Also available in: Atom PDF