Feature #59
ItqlInterpreter refactoring
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 "session management" 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.
Updated by Paula Gearon over 15 years ago
- Status changed from New to Closed
- Resolution set to fixed