Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Done
-
None
Description
The main goal of this task - introduce a script processor that will be responsible for managing the execution of multi-statement queries.
In order to integrate it with public API (session#executeScriptAsync) we need add a new internal method to QueryProcessor.
Since we need the ability to switch forward between cursors, the signature should essentially look something like this:
CompletableFuture<AsyncCursorIterator<List<Object>>> queryScriptAsync(...)
(the decision on the final form of the signature must be made during the implementation of this task)
The entire script will be parsed at once.
Statements must be executed one by one in the order they are specified in the script.
Due to the lazy nature of SQL engine, the moment when the current statement is "complete" depends on the user who drains the cursor.
To avoid dependency on a user's actions, it proposed to consider statement being "complete" as soon as first page is ready to be returned to the user.
IGNITE-20454 should introduce a notification for cursor prefetching which the script processor should use to control script execution.
Integration with transaction management (using script commands) must be implemented in another ticket and should not be part of this ticket.
Attachments
Issue Links
- blocks
-
IGNITE-19855 ODBC 3.0: Implement multiple queries execution
- Open
-
IGNITE-20463 Sql. Integration of TX-related statements into sql script processor
- Resolved
-
IGNITE-17060 Thin 3.0: Implement script SQL API for java thin client
- Resolved
-
IGNITE-20652 .NET: Thin 3.0: add SQL script execution API
- Resolved
-
IGNITE-20653 C++ client: support SQL script execution
- Resolved
-
IGNITE-16960 Sql. Script execution using java public API
- Resolved
- is blocked by
-
IGNITE-20454 Sql. Extend SQL cursor with ability to check if first page is ready
- Resolved
-
IGNITE-20764 Sql. Improve script parsing to handle dynamic parameters for each statement
- Resolved
- links to