Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-20443

Sql. Implement script processing logic.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Done
    • None
    • 3.0
    • sql

    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

          Activity

            People

              xtern Pavel Pereslegin
              xtern Pavel Pereslegin
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 5.5h
                  5.5h