* Sanja Byelkin <sanja@stripped> [08/08/20 23:39]:
> > Why do you have to add a new member? Isn't checking for DISABLED
> > sufficient?
>
> It do not show that thread is termninating. At least description says:
>
> /**
> Mark the diagnostics area as 'DISABLED'.
>
> This is used in rare cases when the COM_ command at hand sends a response
> in a custom format. One example is the query cache, another is
> COM_STMT_PREPARE.
> */
>
> and
>
> /** Set in case of a custom response, such as one from COM_STMT_PREPARE. */
> DA_DISABLED
>
>
> > Need for a new member in a class that is very remotely related to
> > a storage engine does not seem to be justified by an assert in the
> > storage engine.
>
> When thread is closing MySQL Server unlock tables after "sending OK to
> client" (actually the flag means that output just closed, as I
> understand). It is the situation which is not possible in normal query
> processing and there is no way to detect it.
Committing an internal maria transaction in external_lock() is a
maria hack. It has backfired already in having to add
maria::implicit_commit() in a few places. Now some assert files.
The diagnostics area is a brand new class that has been made
clean. Now it contains a member that tracks information that is
totally unrelated to the purpose of the class.
Again, only because maria engine has a hack in it.
Can you please find a better solution (preferably maria-specific)?
--