You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Konstantin Orlov (Jira)" <ji...@apache.org> on 2023/09/20 06:54:00 UTC

[jira] [Created] (IGNITE-20453) Basic Multi Statement Support

Konstantin Orlov created IGNITE-20453:
-----------------------------------------

             Summary: Basic Multi Statement Support
                 Key: IGNITE-20453
                 URL: https://issues.apache.org/jira/browse/IGNITE-20453
             Project: Ignite
          Issue Type: Epic
          Components: sql
            Reporter: Konstantin Orlov


h1. Motivation

A multi-statement query is a collection of SQL statements that can be executed in one request. Supporting multi-statement queries may result in several benefits:
* It helps to decrease number of round trips between the application and the database server, which is positively affects performance (this can be achieved by using batching though)
* It may significantly improve UX: during maintaining, user may submit an entire migration/initialization script to the database server without need to split this script on independent statements by hand
* In distributed system, some features (like shared mutable state, system and user defined variables) are easier to introduce for multi-statement only, rather than for general case

Most popular RDBMS systems, such as Oracle, MySQL, and PostgreSQL, already support multi-statement execution.

Let's support multi statement queries in Apache Ignite 3 to ease the migration to Ignite and improve UX by providing familiar and convenient way of working with database.

h1. Requirements

# It should be possible to start new transaction and commit it from a script
# If there is no explicit active transaction (either passed as parameter to the API call or started from script), then every statement should be wrapped in its own transaction
# It should not be possible to commit transaction passed as parameter to the API call
# It should not be possible to start another transaction if there is an active transaction
# It should not be possible to start transaction by executing a tx management statement in single statement mode
# The execution of a multi statement query should emulates serial execution for all statements in the order they are enumerated in the script; as if statements had been executed one after another, serially, rather than concurrently
# Multi statement query should do progress even if no one consumes the result



--
This message was sent by Atlassian Jira
(v8.20.10#820010)