← Back to team overview

maria-developers team mailing list archive

Re: 346c8ab9533: MDEV-11975: SQLCOM_PREPARE of EXPLAIN & ANALYZE statement do not return correct metadata info


Hi, Sergei!

Am 20.04.2018 um 09:29 schrieb Sergei Golubchik:
Hi, Oleksandr!

On Apr 20, Oleksandr Byelkin wrote:
Am 19.04.2018 um 11:31 schrieb Sergei Golubchik:
+# cat MYSQL_TMP_DIR/test_explain_meta.out.log
+# ------------------------------------
okay, altought I'd rather add prepare metadata output to mysqltest.
Like, either print prepare metadata on --enable_metadata or introduce a new
command --enable_prepare_metadata
This two functionality are independent. We have speciall "IFs" in the
code to return SQL level prepare in some other place and actually nobody
really care what SQL level prepare return (of course I can fix it also,
but main request came from JDBC).
No-no. I don't mean sql prepare. I mean this part of mysqltest.cc:

   if (do_stmt_prepare(cn, query, query_len))
     handle_error(command,  mysql_stmt_errno(stmt),
                  mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
     goto end;

+ if (display_metadata)
+   append_metadata(ds, fields, num_fields);

then one will be able to run the test, say

   EXPLAIN SELECT * FROM mysql.user;

and in --ps-protocol it'll show you metadata from prepared EXPLAIN.
May be --enable_metadata cannot be used for that and it'll need a new
command --enable_prepare_metadata (like we have --enable_prepare_warnings)
It is a big surprise for me but our --ps-protocol appeared to test only SELECT (by regular expression chosen) and I think fixing it is quite separate task.
(IMHO IT should be fixed, but the task is irrelivant)