blob: 85943bde63044c405ff5274bb870d7589cc1926d [file] [log] [blame]
************************
EXPLAIN
************************
*Synopsis*
.. code-block:: sql
EXPLAIN [GLOBAL] statement
*Description*
Show the logical or global execution plan of a statement.
*Examples*
Logical plan:
.. code-block:: sql
default> EXPLAIN SELECT l_orderkey, count(*) FROM lineitem GROUP BY l_orderkey;
explain
-------------------------------
GROUP_BY(1)(l_orderkey)
=> exprs: (count())
=> target list: default.lineitem.l_orderkey (INT8), ?count (INT8)
=> out schema:{(2) default.lineitem.l_orderkey (INT8), ?count (INT8)}
=> in schema:{(1) default.lineitem.l_orderkey (INT8)}
SCAN(0) on default.lineitem
=> target list: default.lineitem.l_orderkey (INT8)
=> out schema: {(1) default.lineitem.l_orderkey (INT8)}
=> in schema: {(16) default.lineitem.l_orderkey (INT8), default.lineitem.l_partkey (INT8), default.lineitem.l_suppkey (INT8), default.lineitem.l_linenumber (INT8), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (DATE), default.lineitem.l_commitdate (DATE), default.lineitem.l_receiptdate (DATE), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT)}
Global plan:
.. code-block:: sql
default> EXPLAIN GLOBAL SELECT l_orderkey, count(*) FROM lineitem GROUP BY l_orderkey;
explain
-------------------------------
-------------------------------------------------------------------------------
Execution Block Graph (TERMINAL - eb_0000000000000_0000_000003)
-------------------------------------------------------------------------------
|-eb_0000000000000_0000_000003
|-eb_0000000000000_0000_000002
|-eb_0000000000000_0000_000001
-------------------------------------------------------------------------------
Order of Execution
-------------------------------------------------------------------------------
1: eb_0000000000000_0000_000001
2: eb_0000000000000_0000_000002
3: eb_0000000000000_0000_000003
-------------------------------------------------------------------------------
=======================================================
Block Id: eb_0000000000000_0000_000001 [LEAF]
=======================================================
[Outgoing]
[q_0000000000000_0000] 1 => 2 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT8), num=32)
GROUP_BY(5)(l_orderkey)
=> exprs: (count())
=> target list: default.lineitem.l_orderkey (INT8), ?count_1 (INT8)
=> out schema:{(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)}
=> in schema:{(1) default.lineitem.l_orderkey (INT8)}
SCAN(0) on default.lineitem
=> target list: default.lineitem.l_orderkey (INT8)
=> out schema: {(1) default.lineitem.l_orderkey (INT8)}
=> in schema: {(16) default.lineitem.l_orderkey (INT8), default.lineitem.l_partkey (INT8), default.lineitem.l_suppkey (INT8), default.lineitem.l_linenumber (INT8), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (DATE), default.lineitem.l_commitdate (DATE), default.lineitem.l_receiptdate (DATE), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT)}
=======================================================
Block Id: eb_0000000000000_0000_000002 [ROOT]
=======================================================
[Incoming]
[q_0000000000000_0000] 1 => 2 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT8), num=32)
GROUP_BY(1)(l_orderkey)
=> exprs: (count(?count_1 (INT8)))
=> target list: default.lineitem.l_orderkey (INT8), ?count (INT8)
=> out schema:{(2) default.lineitem.l_orderkey (INT8), ?count (INT8)}
=> in schema:{(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)}
SCAN(6) on eb_0000000000000_0000_000001
=> out schema: {(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)}
=> in schema: {(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)}
=======================================================
Block Id: eb_0000000000000_0000_000003 [TERMINAL]
=======================================================