Details

    Description

      Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

      Difference from MySQL's EXPLAIN FORMAT=JSON

      We don't want to copy MySQL 5.6:
      From the user point of view:

      • 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
        • I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
      • 5.6 output format doesn't allow to display some info we want to display
      • 5.6's output format has legacy of tabular output format in many places
      • MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

      Currently supported

      • Basic SELECTs
      • Table access methods
        • full table/index scans
        • range access
        • index_merge access
        • I_S read optimizations
      • "Using where" (attached_condition)
      • rows and 'filtered' columns
      • Index Condition Pushdown ('index_condition')
      • UNIONs (incomplete)
      • Item-based subqueries (incomplete)
      • Basic join buffering
      • Single-table UPDATE/DELETE
      • Derived tables
      • Non-merged semi-joins (JTBMs)
      • [Merged] Semi-joins: SJ-Materialization
      • [Merged] Semi-joins: FirstMatch, DuplicateElimination, LooseScan

      Not yet supported (important)

      • ORDER BY/GROUP BY/ DISTINCT handling – as agreed won't be ready before 10.1.2

      Not yet supported (less important)

      • Subquery cache feature
      • Advanced join buffering (display MRR as a special kind of scan)

      Attachments

        Issue Links

          Activity

            serg Sergei Golubchik created issue -
            serg Sergei Golubchik made changes -
            Field Original Value New Value
            Priority Major [ 3 ] Critical [ 2 ]
            serg Sergei Golubchik made changes -
            Labels optimizer
            serg Sergei Golubchik made changes -
            Assignee Sergei Petrunia [ psergey ]
            serg Sergei Golubchik made changes -
            Workflow defaullt [ 38925 ] MariaDB v2 [ 42477 ]
            psergei Sergei Petrunia made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            psergei Sergei Petrunia made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            psergei Sergei Petrunia made changes -
            Fix Version/s 10.1.1 [ 16100 ]
            Fix Version/s 10.1.0 [ 12200 ]
            psergei Sergei Petrunia made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            psergei Sergei Petrunia made changes -
            psergei Sergei Petrunia made changes -
            Description merge EXPLAIN JSON from 5.6 Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling

            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling

            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * range access
            * index_merge access
            * attached_condition
            * Index Condition Pushdown ('attached_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling

            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * range access
            * index_merge access
            * attached_condition
            * Index Condition Pushdown ('attached_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling

            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.5's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            * Semi-joins
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            * Semi-joins
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            * Semi-joins
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Subqueries (incomplete)

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Join buffering
            * Semi-joins
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?
            *
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering

            h2. Not yet supported
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?
            *
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?

            h2. Not yet supported (less important)
            * Subquery cache feature
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?

            h2. Not yet supported (less important)
            * Subquery cache feature
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?
            * Single-table UPDATE/DELETE/INSERT

            h2. Not yet supported (less important)
            * Subquery cache feature
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?
            * Single-table UPDATE/DELETE/INSERT

            h2. Not yet supported (less important)
            * Subquery cache feature
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?

            h2. Not yet supported (less important)
            * Subquery cache feature
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins
            * derived tables?

            h2. Not yet supported (less important)
            * Subquery cache feature
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins

            h2. Not yet supported (less important)
            * Subquery cache feature
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * Semi-joins

            h2. Not yet supported (less important)
            * Subquery cache feature
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables
            * Non-merged semi-joins (JTBMs)
            * [Merged] Semi-joins: SJ-Materialization

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * [Merged] Semi-joins: FirstMatch, DuplicateElimination, LooseScan

            h2. Not yet supported (less important)
            * Subquery cache feature
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables
            * Non-merged semi-joins (JTBMs)
            * [Merged] Semi-joins: SJ-Materialization

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * Advanced join buffering (display MRR as a special kind of scan)
            * [Merged] Semi-joins: FirstMatch, DuplicateElimination, LooseScan

            h2. Not yet supported (less important)
            * Subquery cache feature
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables
            * Non-merged semi-joins (JTBMs)
            * [Merged] Semi-joins: SJ-Materialization

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * [Merged] Semi-joins: FirstMatch, DuplicateElimination, LooseScan

            h2. Not yet supported (less important)
            * Subquery cache feature
            * Advanced join buffering (display MRR as a special kind of scan)
            dveeden Daniël van Eeden made changes -
            rspadim roberto spadim made changes -
            psergei Sergei Petrunia made changes -
            Description Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables
            * Non-merged semi-joins (JTBMs)
            * [Merged] Semi-joins: SJ-Materialization

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling
            * [Merged] Semi-joins: FirstMatch, DuplicateElimination, LooseScan

            h2. Not yet supported (less important)
            * Subquery cache feature
            * Advanced join buffering (display MRR as a special kind of scan)
            Support EXPLAIN FORMAT=JSON like MySQL 5.6 does.

            h2. Difference from MySQL's EXPLAIN FORMAT=JSON
            We don't want to copy MySQL 5.6:
            From the user point of view:
            * 5.6 output format is not documented and unstable (even MySQL Workbench fails to parse it in some cases)
            ** I don't expect that any 3rd party is able to parse it, other than relying that it's a well-formed JSON document.
            * 5.6 output format doesn't allow to display some info we want to display
            * 5.6's output format has legacy of tabular output format in many places
            * MariaDB has more optimizer features, so we will have to produce output that 5.6 never produces

            h2. Currently supported
            * Basic SELECTs
            * Table access methods
            ** full table/index scans
            ** range access
            ** index_merge access
            ** I_S read optimizations
            * "Using where" (attached_condition)
            * rows and 'filtered' columns
            * Index Condition Pushdown ('index_condition')
            * UNIONs (incomplete)
            * Item-based subqueries (incomplete)
            * Basic join buffering
            * Single-table UPDATE/DELETE
            * Derived tables
            * Non-merged semi-joins (JTBMs)
            * [Merged] Semi-joins: SJ-Materialization
            * [Merged] Semi-joins: FirstMatch, DuplicateElimination, LooseScan

            h2. Not yet supported (important)
            * ORDER BY/GROUP BY/ DISTINCT handling -- as agreed won't be ready before 10.1.2

            h2. Not yet supported (less important)
            * Subquery cache feature
            * Advanced join buffering (display MRR as a special kind of scan)
            rspadim roberto spadim made changes -
            psergei Sergei Petrunia made changes -
            Component/s Optimizer [ 10200 ]
            Fix Version/s 10.1.2 [ 15801 ]
            Fix Version/s 10.1 [ 16100 ]
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            psergei Sergei Petrunia made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            ratzpo Rasmus Johansson (Inactive) made changes -
            Workflow MariaDB v2 [ 42477 ] MariaDB v3 [ 64142 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 64142 ] MariaDB v4 [ 132319 ]

            People

              psergei Sergei Petrunia
              serg Sergei Golubchik
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.