Ticket #59 (closed enhancement: fixed)

Opened 2 years ago

Last modified 8 months ago

ItqlInterpreter refactoring

Reported by: pag Assigned to: pag
Priority: major Milestone:
Component: Mulgara Version:
Keywords: Cc:

Description (Last modified by pag)

Currently ItqlInterpreter takes a string, parses it into a command AST, and executes it. Execution uses information out of the AST for managing sessions.

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:
1. Client parsing, establishing connections, and sending AST to server (current implementation).
2. Client connects to server, sends raw string. Server parses TQL and executes on local session.
3. Client connects to server, sends raw string. Server parses SPARQL and executes on local session.

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

Change History

03/17/08 13:12:18 changed by pag

  • status changed from new to closed.
  • resolution set to fixed.
  • description changed.