Hyunsik Choi created TAJO-184:
---------------------------------
Summary: Refactor GlobalPlanner and global plan data structure
Key: TAJO-184
URL: https://issues.apache.org/jira/browse/TAJO-184
Project: Tajo
Issue Type: Improvement
Components: master, physical operator, planner/optimizer
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
Fix For: 0.2-incubating
Above all, I'm sorry for submitting a big patch. This patch modifies and
refactors broadly global planning, logical planning, and physical planning
parts. It was hard to separate this issue into smaller issues.
Especially, this patch primarily rewrites GlobalPlanner and MasterPlan (global
plan data structure) as follows:
* Removed GlobalPlanOptimizer
* Added DirectedGraph interface, SimpleDirectedGraph concret class, and a
visitor class to visit a graph in post-order traverse way.
* Improved MasterPlan by using new graph API
** query block graphs and an execution block graph are represented by
SimpleDirectedGraph.
** Now, we can traverse above graphs easily by using graph APIs.
** Added DataChannel class to represent a data flow between execution blocks.
* MasterPlan.toString() prints a text graph to represent relationships among
execution blocks and a distributed plan.
* Add more sophisticated explain feature for a distributed plan and logical
plan. It is very useful for plan debugging.
* Now, the limit operator is pushed down to child execution block.
** So, the intermediate data volume of a sort query with limit is reduced
significantly.
* TableSubQuery (inline view) is supported. It follows SQL standards. So, you
can do a query as follows:
{code}
SELECT *
FROM
(
SELECT
l_orderkey,
l_partkey,
url
FROM
(
SELECT
l_orderkey,
l_partkey,
CASE
WHEN
l_partkey IS NOT NULL THEN ''
WHEN l_orderkey = 1 THEN '1'
ELSE
'2'
END AS url
FROM
lineitem
) res1
JOIN
(
SELECT
*
FROM
part
) res2
ON l_partkey = p_partkey
) result
{code}
In addition, I've refactored as follows:
* Column has a qualifier name.
* Improved Schema to deal with qualified column names
* When a TableDesc instance is retrieved, it is forced to have qualifier
columns.
* Fixed TAJO-162 bug.
* Lots of trivial improvement and refactors.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira