[ 
https://issues.apache.org/jira/browse/IGNITE-20443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evgeny Stanilovsky updated IGNITE-20443:
----------------------------------------
    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:
{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.

  was:
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.


> 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 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:
> {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)

Reply via email to