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)