[
https://issues.apache.org/jira/browse/IGNITE-20443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin updated IGNITE-20443:
--------------------------------------
Fix Version/s: 3.0.0-beta2
> Sql. Implement script processing logic.
> ---------------------------------------
>
> Key: IGNITE-20443
> URL: https://issues.apache.org/jira/browse/IGNITE-20443
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Pavel Pereslegin
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Time Spent: 5.5h
> Remaining Estimate: 0h
>
> 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 oublic 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:
> {code:java}
> CompletableFuture<AsyncCursorIterator<List<Object>>> queryScriptAsync(...)
> {code}
> (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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)