I've been looking at the most recent change to
AbstractStatementExecutor and it seems to assume that if a DDL
statement, in general, results in a commit that this will also happen
for a temporary table. In the case of MySQL, at least, this is not the
case. The code in AbstractStatementExecutor goes and creates the
temporary table in a new connection, which, in the case of MySQL, will
not be visible in the current transaction.
If this turns out to be a bug, I will create an isolated test case for
it and log a bug in JIRA.