← Back to team overview

maria-developers team mailing list archive

Re: MDEV-6111: Optimizer trace: on the first output

 

On Tue, Jun 12, 2018 at 07:40:08AM +0800, zhzhzoo zhang wrote:
> I've done
> condition processing and some range analysis.
>     and for the test input (
> https://dev.mysql.com/doc/internals/en/tracing-example.html), It now
> outputs something like
> 

(not very readable from the email so I've made two pastes, from the current
tree and from MySQL 8):

https://gist.github.com/spetrunia/cb4a1a382a9e81a60491d524dbfc08f6
https://gist.github.com/spetrunia/62347cc3bf26e003909a32b378b6684f

> ```{
>   "join_optimization": {
>     "select #": 1,
>     "steps": {
>       "inner": {
>         "select #": 1,

Two  'select #' :1 seem to be redundant.

There are also two nested "steps" elements which seem redundant as well.

>         "steps": [
>           {
>             "condition_processing": {
>               "condition": "WHERE",
>               "original_condition": "`test`.`alias1`.`pk` <> 0 and
> `test`.`alias2`.`pk` = `test`.`alias1`.`col_int_key`",
>               "steps": [
>                 {
>                   "transformation": "equality_propagation",
>                   "subselect_evaluation": [],
>                   "resulting_condition": "`test`.`alias1`.`pk` <> 0 and
> multiple equal(`test`.`alias2`.`pk`, `test`.`alias1`.`col_int_key`)???"

What are the "???" at the end? Please get them removed.

also, if you check EXPLAIN FORMAT=JSON output, it prints conditions without
overquoting, like so:

    "attached_condition": "alias1.pk <> 0 and alias1.col_int_key is not null"

This is done by using QT_EXPLAIN parameter:

  item->print(&str, QT_EXPLAIN);

Let's print them this way here as well.

>                 },
>                 {
>                   "transformation": "constant_propagation",
>                   "subselect_evaluation": [],
>                   "resulting_condition": "`test`.`alias1`.`pk` <> 0 and
> multiple equal(`test`.`alias2`.`pk`, `test`.`alias1`.`col_int_key`)???"
>                 },

BR
 Sergei
-- 
Sergei Petrunia, Software Developer
MariaDB Corporation | Skype: sergefp | Blog: http://s.petrunia.net/blog




References