[PATCH 5/5] Allow to execute non-yielding DDL statements in transactions
Vladimir Davydov
vdavydov.dev at gmail.com
Mon Jul 8 19:51:03 MSK 2019
On Mon, Jul 08, 2019 at 03:26:26PM +0300, Konstantin Osipov wrote:
> * Vladimir Davydov <vdavydov.dev at gmail.com> [19/07/05 23:27]:
> > +box.begin() s:insert{4, 4} s:create_index('sk', {parts = {2, 'unsigned'}}) -- error
> > +---
> > +- error: DDL does not support yielding statements in transactions
>
> this message is rather obscure. Let's try to explain it in more
> plain English. "Even if your engine allows a yield in transaction,
> yielding in a transaction that has a DDL statement in it is not
> uspported unless it's the first statement".
>
> Is it what you wanted to say?
Basically, yes, but I'd prefer to keep the error message as brief as
possible. Besides we can't put such a text in ER_UNSUPPORTED error which
has the following template: "%s does not support %s". We can, of course,
introduce a separate error code, but I failed to come up with a good
name for it :-/
What about
DDL does not support long operations, such as building an index or checking a space format, in a transaction
?
More information about the Tarantool-patches
mailing list