[PATCH 5/5] Allow to execute non-yielding DDL statements in transactions

Konstantin Osipov kostja at tarantool.org
Mon Jul 8 11:21:16 MSK 2019


* Vladimir Davydov <vdavydov.dev at gmail.com> [19/07/08 11:14]:
> On Sat, Jul 06, 2019 at 01:56:35AM +0300, Konstantin Osipov wrote:
> > * Vladimir Davydov <vdavydov.dev at gmail.com> [19/07/05 23:27]:
> > 
> > Please work on a test case which not only ensures the statements
> > are allowed, but also produce desired results - as well as leave
> > no traces/partial effects on rollback.
> 
> As a matter of fact, this simple test does check that rollback doesn't
> leave any traces - if it did, an attempt to commit the same statements
> would fail:
> 
>   box.begin() create() box.rollback() -- suppose it leaved some traces
>   box.begin() create() box.commit() -- then this would fail
> 
> It also checks that the DDL operations produce the desired results,
> otherwise an attempt to drop created objects would fail:
> 
>   box.begin() create() box.commit() -- suppose it didn't create some objects
>   box.begin() drop() box.commit() -- then this would fail

In any case you test a fixed number of combinations, and should
come up with a randomized test. This feature encompasses all DDL
operators, including:

- roles
- users
- functions
- SQL triggers
- SQL foreign key constraints
- SQL views
- SQL check constraints

Every object should be involved in the test, and the generated
transactions should be random.

-- 
Konstantin Osipov, Moscow, Russia
https://scylladb.com



More information about the Tarantool-patches mailing list