Repository: tajo
Updated Branches:
  refs/heads/master dfb308fde -> 3cf7f24bc


TAJO-2061: Add description for EXPLAIN statement.

Closes #947


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/3cf7f24b
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/3cf7f24b
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/3cf7f24b

Branch: refs/heads/master
Commit: 3cf7f24bc1133d3c0df1ef6031ce075bdf97fb7f
Parents: dfb308f
Author: JaeHwa Jung <[email protected]>
Authored: Fri Jan 22 18:36:09 2016 +0900
Committer: JaeHwa Jung <[email protected]>
Committed: Fri Jan 22 18:36:09 2016 +0900

----------------------------------------------------------------------
 CHANGES                                         |  2 +
 tajo-docs/src/main/sphinx/sql_language.rst      |  3 +-
 .../src/main/sphinx/sql_language/explain.rst    | 93 ++++++++++++++++++++
 3 files changed, 97 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/3cf7f24b/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index c0801cc..6bc9635 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,8 @@ Release 0.12.0 - unreleased
 
   IMPROVEMENT
 
+    TAJO-2061: Add description for EXPLAIN statement. (jaehwa)
+
     TAJO-2060: Upgrade geoip-api-java library. (Byunghwa Yun via jinho)
 
     TAJO-2048: QueryMaster and TajoWorker should support the exception

http://git-wip-us.apache.org/repos/asf/tajo/blob/3cf7f24b/tajo-docs/src/main/sphinx/sql_language.rst
----------------------------------------------------------------------
diff --git a/tajo-docs/src/main/sphinx/sql_language.rst 
b/tajo-docs/src/main/sphinx/sql_language.rst
index ed57e50..414a0e0 100644
--- a/tajo-docs/src/main/sphinx/sql_language.rst
+++ b/tajo-docs/src/main/sphinx/sql_language.rst
@@ -12,4 +12,5 @@ SQL Language
     sql_language/queries
     sql_language/joins
     sql_language/sql_expression
-    sql_language/predicates
\ No newline at end of file
+    sql_language/predicates
+    sql_language/explain
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tajo/blob/3cf7f24b/tajo-docs/src/main/sphinx/sql_language/explain.rst
----------------------------------------------------------------------
diff --git a/tajo-docs/src/main/sphinx/sql_language/explain.rst 
b/tajo-docs/src/main/sphinx/sql_language/explain.rst
new file mode 100644
index 0000000..85943bd
--- /dev/null
+++ b/tajo-docs/src/main/sphinx/sql_language/explain.rst
@@ -0,0 +1,93 @@
+************************
+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]
+  =======================================================
\ No newline at end of file

Reply via email to