[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