Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-853

Refactoring FilterPushDown for OUTER JOIN

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.0
    • Component/s: None
    • Labels:
      None

      Description

      Currently Tajo doesn't support a filter OUTER JOIN's ON clause.
      or has some bugs. There is some rules for this in the following urls.

      Briefly summarized as follows.

      • Join Predicate on Preserved Row Table: Used for join condition(not filter)
      • Join Predicate on Null Supplying Table: Can push down to the table scan
      • Where Predicate on Preserved Row Table: Can push down to the table scan
      • Where Predicate on Null Supplying Table: Used for filter with join result data. This filter condition is attached to SELECTION Node.

        Activity

        Hide
        hudson Hudson added a comment -

        SUCCESS: Integrated in Tajo-master-build #254 (See https://builds.apache.org/job/Tajo-master-build/254/)
        TAJO-853: Refactoring FilterPushDown for OUTER JOIN. (Hyoungjun Kim via hyunsik) (hyunsik: rev 8cf508aad4cfa631f86229d7ed2875e2a0929c70)

        • tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin2.sql
        • tajo-core/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin2.result
        • tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin3.sql
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/join/GreedyHeuristicJoinOrderAlgorithm.java
        • tajo-core/src/main/java/org/apache/tajo/engine/eval/CaseWhenEval.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
        • tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalOptimizer.java
        • tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java
        • tajo-storage/src/main/java/org/apache/tajo/storage/StorageManager.java
        • tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin3.result
        • tajo-storage/src/main/java/org/apache/tajo/storage/NullScanner.java
        • tajo-core/src/main/java/org/apache/tajo/master/session/Session.java
        • tajo-core/src/test/resources/queries/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin.sql
        • tajo-core/src/test/resources/queries/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin2.sql
        • tajo-core/src/test/resources/queries/TestJoinOnPartitionedTables/testFilterPushDownPartitionColumnCaseWhen.sql
        • tajo-storage/src/main/java/org/apache/tajo/storage/v2/StorageManagerV2.java
        • tajo-core/src/test/resources/results/TestJoinOnPartitionedTables/testFilterPushDownPartitionColumnCaseWhen.result
        • tajo-core/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin.result
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
        • tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
        • CHANGES
        • tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin4.sql
        • tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin4.result
        • tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
        • tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin1.sql
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinEdge.java
        • tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin2.result
        • tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
        • tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
        • tajo-core/src/main/java/org/apache/tajo/engine/planner/rewrite/FilterPushDownRule.java
        • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
        • tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin1.result
        Show
        hudson Hudson added a comment - SUCCESS: Integrated in Tajo-master-build #254 (See https://builds.apache.org/job/Tajo-master-build/254/ ) TAJO-853 : Refactoring FilterPushDown for OUTER JOIN. (Hyoungjun Kim via hyunsik) (hyunsik: rev 8cf508aad4cfa631f86229d7ed2875e2a0929c70) tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin2.sql tajo-core/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin2.result tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin3.sql tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/join/GreedyHeuristicJoinOrderAlgorithm.java tajo-core/src/main/java/org/apache/tajo/engine/eval/CaseWhenEval.java tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalOptimizer.java tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java tajo-storage/src/main/java/org/apache/tajo/storage/StorageManager.java tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin3.result tajo-storage/src/main/java/org/apache/tajo/storage/NullScanner.java tajo-core/src/main/java/org/apache/tajo/master/session/Session.java tajo-core/src/test/resources/queries/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin.sql tajo-core/src/test/resources/queries/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin2.sql tajo-core/src/test/resources/queries/TestJoinOnPartitionedTables/testFilterPushDownPartitionColumnCaseWhen.sql tajo-storage/src/main/java/org/apache/tajo/storage/v2/StorageManagerV2.java tajo-core/src/test/resources/results/TestJoinOnPartitionedTables/testFilterPushDownPartitionColumnCaseWhen.result tajo-core/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDownOuterJoin.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java CHANGES tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin4.sql tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin4.result tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java tajo-core/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin1.sql tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinEdge.java tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin2.result tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/rewrite/FilterPushDownRule.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin1.result
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user asfgit closed the pull request at:

        https://github.com/apache/tajo/pull/28

        Show
        githubbot ASF GitHub Bot added a comment - Github user asfgit closed the pull request at: https://github.com/apache/tajo/pull/28
        Hide
        hyunsik Hyunsik Choi added a comment -

        committed it to master branch. Thanks a lot!

        Show
        hyunsik Hyunsik Choi added a comment - committed it to master branch. Thanks a lot!
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user hyunsik commented on the pull request:

        https://github.com/apache/tajo/pull/28#issuecomment-46937502

        I did the follows:

        • I've rebased the patch against the latest source code.
        • I've fixed unit test failures by adding some workaround code as follows:
          ```
          @AfterClass
          public static void tearDown() { testingCluster.setAllTajoDaemonConfValue( ConfVars.EXECUTOR_INNER_JOIN_INMEMORY_HASH_THRESHOLD.varname, String.valueOf(ConfVars.EXECUTOR_INNER_JOIN_INMEMORY_HASH_THRESHOLD.defaultLongVal)); testingCluster.setAllTajoDaemonConfValue(ConfVars.EXECUTOR_OUTER_JOIN_INMEMORY_HASH_THRESHOLD.varname, String.valueOf(ConfVars.EXECUTOR_OUTER_JOIN_INMEMORY_HASH_THRESHOLD.defaultLongVal)); testingCluster.setAllTajoDaemonConfValue(ConfVars.EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.varname, String.valueOf(ConfVars.EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.defaultLongVal)); }

          ```

        After than, the patch works well. the patch nice to me. Here is my +1. I'll commit it soon.

        Thanks!

        Show
        githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/28#issuecomment-46937502 I did the follows: I've rebased the patch against the latest source code. I've fixed unit test failures by adding some workaround code as follows: ``` @AfterClass public static void tearDown() { testingCluster.setAllTajoDaemonConfValue( ConfVars.EXECUTOR_INNER_JOIN_INMEMORY_HASH_THRESHOLD.varname, String.valueOf(ConfVars.EXECUTOR_INNER_JOIN_INMEMORY_HASH_THRESHOLD.defaultLongVal)); testingCluster.setAllTajoDaemonConfValue(ConfVars.EXECUTOR_OUTER_JOIN_INMEMORY_HASH_THRESHOLD.varname, String.valueOf(ConfVars.EXECUTOR_OUTER_JOIN_INMEMORY_HASH_THRESHOLD.defaultLongVal)); testingCluster.setAllTajoDaemonConfValue(ConfVars.EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.varname, String.valueOf(ConfVars.EXECUTOR_GROUPBY_INMEMORY_HASH_THRESHOLD.defaultLongVal)); } ``` After than, the patch works well. the patch nice to me. Here is my +1. I'll commit it soon. Thanks!
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user hyunsik commented on the pull request:

        https://github.com/apache/tajo/pull/28#issuecomment-46936065

        Thank you for nice contribution. The patch looks good to me. This patch seems to fix outer join behaviors in terms of following cases:

        • join conditions in located on either ON clause or WHERE clause
        • column references included in join conditions correspond to either row-preserving or null supplying tables.

        There are tree comments:

        • The patch needs rebase. It causes some conflicts against the changes of TAJO-850.
        • TestJoinQuery is changed to use parameterized unit tests. The constructor of TestJoinQuery changes the global configuration in all workers. It affects other unit tests. So, I'm facing following errors. When I remove the reconfiguration in TestJoinQuery, all tests were passed.
          ```
          Results :

        Failed tests: testGroupbyWithJson(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...-------------------(..)
        testHavingWithAggFunction(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...-------------------(..)
        testGroupByWithSameConstantKeys1(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...---------(..)
        testHavingWithNamedTarget(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...-------------------(..)
        testFilterPushDownPartitionColumnCaseWhen(org.apache.tajo.engine.query.TestJoinOnPartitionedTables): Result Verification expected:<[c_custkey,c_nationkey,c_name,o_custkey,?casewhen(..)
        ```

        • I found some trivial NPE bug in outer join tests as follows. But, I cound fix it by adding some trivial workaround code to SeqScanExec::scanAndAddCache as follows:
          ```
          2014-06-24 14:08:15,673 INFO: org.apache.tajo.engine.planner.PhysicalPlannerImpl (createBestLeftOuterJoinPlan(470)) - Left Outer Join (5) chooses [Hash Join].
          2014-06-24 14:08:15,675 ERROR: org.apache.tajo.worker.Task (run(395)) -
          java.lang.NullPointerException
          at org.apache.tajo.engine.planner.physical.SeqScanExec.scanAndAddCache(SeqScanExec.java:236)
          at org.apache.tajo.engine.planner.physical.SeqScanExec.init(SeqScanExec.java:176)
          at org.apache.tajo.engine.planner.physical.BinaryPhysicalExec.init(BinaryPhysicalExec.java:53)
          at org.apache.tajo.engine.planner.physical.UnaryPhysicalExec.init(UnaryPhysicalExec.java:52)
          at org.apache.tajo.engine.planner.physical.StoreTableExec.init(StoreTableExec.java:48)
          at org.apache.tajo.worker.Task.run(Task.java:386)
          at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:406)
          at java.lang.Thread.run(Thread.java:744)
          2014-06-24 14:08:15,675 INFO: org.apache.tajo.worker.TaskAttemptContext (setState(115)) - Query status of ta_1403586203430_0348_000003_000000_00 is changed to TA_FAILED
          2014-06-24 14:08:15,676 INFO: org.apache.tajo.worker.Task (run(452)) - Worker's task counter - total:1, succeeded: 0, killed: 1, failed: 1
          2014-06-24 14:08:15,676 ERROR: org.apache.tajo.master.querymaster.QueryUnitAttempt (transition(418)) - ta_1403586203430_0348_000003_000000_00 FROM 192.168.0.205 >> java.lang.NullPointerException
          2014-06-24 14:08:15,678 INFO: org.apache.tajo.worker.TaskRunner (run(346)) - Request GetTask: eb_1403586203430_0348_000003,container_1403586203430_0348_01_001096
          ```
          Fixed code in SeqScanExec::scanAndAddCache():
          ```
          if (scanner != null) { scanner.close(); scanner = null; }

          ```

        Show
        githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/28#issuecomment-46936065 Thank you for nice contribution. The patch looks good to me. This patch seems to fix outer join behaviors in terms of following cases: join conditions in located on either ON clause or WHERE clause column references included in join conditions correspond to either row-preserving or null supplying tables. There are tree comments: The patch needs rebase. It causes some conflicts against the changes of TAJO-850 . TestJoinQuery is changed to use parameterized unit tests. The constructor of TestJoinQuery changes the global configuration in all workers. It affects other unit tests. So, I'm facing following errors. When I remove the reconfiguration in TestJoinQuery, all tests were passed. ``` Results : Failed tests: testGroupbyWithJson(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...-------------------(..) testHavingWithAggFunction(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...-------------------(..) testGroupByWithSameConstantKeys1(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...---------(..) testHavingWithNamedTarget(org.apache.tajo.engine.query.TestGroupByQuery): Result Verification expected:<...-------------------(..) testFilterPushDownPartitionColumnCaseWhen(org.apache.tajo.engine.query.TestJoinOnPartitionedTables): Result Verification expected:<[c_custkey,c_nationkey,c_name,o_custkey,?casewhen(..) ``` I found some trivial NPE bug in outer join tests as follows. But, I cound fix it by adding some trivial workaround code to SeqScanExec::scanAndAddCache as follows: ``` 2014-06-24 14:08:15,673 INFO: org.apache.tajo.engine.planner.PhysicalPlannerImpl (createBestLeftOuterJoinPlan(470)) - Left Outer Join (5) chooses [Hash Join] . 2014-06-24 14:08:15,675 ERROR: org.apache.tajo.worker.Task (run(395)) - java.lang.NullPointerException at org.apache.tajo.engine.planner.physical.SeqScanExec.scanAndAddCache(SeqScanExec.java:236) at org.apache.tajo.engine.planner.physical.SeqScanExec.init(SeqScanExec.java:176) at org.apache.tajo.engine.planner.physical.BinaryPhysicalExec.init(BinaryPhysicalExec.java:53) at org.apache.tajo.engine.planner.physical.UnaryPhysicalExec.init(UnaryPhysicalExec.java:52) at org.apache.tajo.engine.planner.physical.StoreTableExec.init(StoreTableExec.java:48) at org.apache.tajo.worker.Task.run(Task.java:386) at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:406) at java.lang.Thread.run(Thread.java:744) 2014-06-24 14:08:15,675 INFO: org.apache.tajo.worker.TaskAttemptContext (setState(115)) - Query status of ta_1403586203430_0348_000003_000000_00 is changed to TA_FAILED 2014-06-24 14:08:15,676 INFO: org.apache.tajo.worker.Task (run(452)) - Worker's task counter - total:1, succeeded: 0, killed: 1, failed: 1 2014-06-24 14:08:15,676 ERROR: org.apache.tajo.master.querymaster.QueryUnitAttempt (transition(418)) - ta_1403586203430_0348_000003_000000_00 FROM 192.168.0.205 >> java.lang.NullPointerException 2014-06-24 14:08:15,678 INFO: org.apache.tajo.worker.TaskRunner (run(346)) - Request GetTask: eb_1403586203430_0348_000003,container_1403586203430_0348_01_001096 ``` Fixed code in SeqScanExec::scanAndAddCache(): ``` if (scanner != null) { scanner.close(); scanner = null; } ```
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user babokim commented on the pull request:

        https://github.com/apache/tajo/pull/28#issuecomment-45819448

        I finished. Please review this issue. Thanks.

        Show
        githubbot ASF GitHub Bot added a comment - Github user babokim commented on the pull request: https://github.com/apache/tajo/pull/28#issuecomment-45819448 I finished. Please review this issue. Thanks.
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user hyunsik commented on the pull request:

        https://github.com/apache/tajo/pull/28#issuecomment-45783447

        Thank you for your contribution. I'm reviewing this patch. Is it ready to be committed or is it still working?

        Show
        githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/28#issuecomment-45783447 Thank you for your contribution. I'm reviewing this patch. Is it ready to be committed or is it still working?
        Hide
        hjkim Hyoungjun Kim added a comment -

        Pull requested via the github. Please review this patch.

        Show
        hjkim Hyoungjun Kim added a comment - Pull requested via the github. Please review this patch.
        Hide
        githubbot ASF GitHub Bot added a comment -

        GitHub user babokim opened a pull request:

        https://github.com/apache/tajo/pull/28

        TAJO-853: Refactoring FilterPushDown for OUTER JOIN

        You can merge this pull request into a Git repository by running:

        $ git pull https://github.com/babokim/tajo TAJO-853

        Alternatively you can review and apply these changes as the patch at:

        https://github.com/apache/tajo/pull/28.patch

        To close this pull request, make a commit to your master/trunk branch
        with (at least) the following in the commit message:

        This closes #28


        commit 922e4b9d820d7f1330097f16392e3c0c65f2e23b
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-20T17:30:38Z

        TAJO-830

        commit e8e8efe933269abd147dfb0504f7b57e65a08183
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-20T17:37:21Z

        Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo

        commit d8b4fa9b046c8a04cbd6fcd7a5b6724068ff8b1b
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-20T17:42:14Z

        Tajo 830: Some filter conditions with a SUBQUERY are removed by optimizer. => Remove unused test code

        commit 3f6b6d0918645de5b27ef748f30c3beb733d6894
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-25T05:10:57Z

        TAJO-830:Some filter conditions with a SUBQUERY are removed by optimizer(remove the korean comment)

        commit e87b72725b384496b7e7667e85a5032270ac21af
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-26T13:18:40Z

        TAJO-850: OUTER JOIN does not properly handle a NULL.

        commit 9215829f52130ce7c8b31fd49c794865a4924e15
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-27T01:09:41Z

        Merge branch 'TAJO-830' of https://github.com/babokim/tajo

        Conflicts:
        tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java

        commit eda038cc492dba0e8a8e914bfaf95158aea31807
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-27T01:34:10Z

        Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo

        Conflicts:
        tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java
        tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
        tajo-core/src/main/java/org/apache/tajo/engine/planner/rewrite/FilterPushDownRule.java

        commit a88333fa2f05882ab5f850ead56b740512ee48d6
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-27T14:39:14Z

        TAJO-850: OUTER JOIN does not properly handle a NULL.

        commit d965111729ca65bfc9b74b9f4e4dfd252dc75230
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-27T14:39:58Z

        Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-850

        commit 63199d4576ce10a4af7d1d4bd7464a1270f4520f
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-29T01:21:58Z

        Merge branch 'TAJO-850' of https://github.com/babokim/tajo

        commit efb0c104ea853d5264dea9afabebbc7980d7b7a3
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-30T07:25:46Z

        TAJO-853: Refactoring FilterPushDown for OUTER JOIN
        Test succeeded in the case of LEFT OUTER

        commit 0fb926875cd0b9d9a404ee4e7b8caebfa850fdef
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-30T13:38:00Z

        TAJO-853: Refactoring FilterPushDown for OUTER JOIN
        Test succeeded in the case of RIGHT OUTER and SortJoin

        commit 15517b84afb8bae8b3cef70f68f1d5f57ee52ae7
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-31T10:58:17Z

        TAJO-853: Refactoring FilterPushDown for OUTER JOIN
        Add tajo.optimizer.join.enable session property

        commit b7c3fd23d111f03c5f45235495f49635dbf0dac4
        Author: 김형준 <babokim@babokim-macbook-pro.local>
        Date: 2014-05-31T11:00:11Z

        Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo

        Conflicts:
        tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java


        Show
        githubbot ASF GitHub Bot added a comment - GitHub user babokim opened a pull request: https://github.com/apache/tajo/pull/28 TAJO-853 : Refactoring FilterPushDown for OUTER JOIN You can merge this pull request into a Git repository by running: $ git pull https://github.com/babokim/tajo TAJO-853 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tajo/pull/28.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #28 commit 922e4b9d820d7f1330097f16392e3c0c65f2e23b Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-20T17:30:38Z TAJO-830 commit e8e8efe933269abd147dfb0504f7b57e65a08183 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-20T17:37:21Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo commit d8b4fa9b046c8a04cbd6fcd7a5b6724068ff8b1b Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-20T17:42:14Z Tajo 830: Some filter conditions with a SUBQUERY are removed by optimizer. => Remove unused test code commit 3f6b6d0918645de5b27ef748f30c3beb733d6894 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-25T05:10:57Z TAJO-830 :Some filter conditions with a SUBQUERY are removed by optimizer(remove the korean comment) commit e87b72725b384496b7e7667e85a5032270ac21af Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-26T13:18:40Z TAJO-850 : OUTER JOIN does not properly handle a NULL. commit 9215829f52130ce7c8b31fd49c794865a4924e15 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-27T01:09:41Z Merge branch ' TAJO-830 ' of https://github.com/babokim/tajo Conflicts: tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java commit eda038cc492dba0e8a8e914bfaf95158aea31807 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-27T01:34:10Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo Conflicts: tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java tajo-core/src/main/java/org/apache/tajo/engine/planner/rewrite/FilterPushDownRule.java commit a88333fa2f05882ab5f850ead56b740512ee48d6 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-27T14:39:14Z TAJO-850 : OUTER JOIN does not properly handle a NULL. commit d965111729ca65bfc9b74b9f4e4dfd252dc75230 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-27T14:39:58Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-850 commit 63199d4576ce10a4af7d1d4bd7464a1270f4520f Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-29T01:21:58Z Merge branch ' TAJO-850 ' of https://github.com/babokim/tajo commit efb0c104ea853d5264dea9afabebbc7980d7b7a3 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-30T07:25:46Z TAJO-853 : Refactoring FilterPushDown for OUTER JOIN Test succeeded in the case of LEFT OUTER commit 0fb926875cd0b9d9a404ee4e7b8caebfa850fdef Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-30T13:38:00Z TAJO-853 : Refactoring FilterPushDown for OUTER JOIN Test succeeded in the case of RIGHT OUTER and SortJoin commit 15517b84afb8bae8b3cef70f68f1d5f57ee52ae7 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-31T10:58:17Z TAJO-853 : Refactoring FilterPushDown for OUTER JOIN Add tajo.optimizer.join.enable session property commit b7c3fd23d111f03c5f45235495f49635dbf0dac4 Author: 김형준 <babokim@babokim-macbook-pro.local> Date: 2014-05-31T11:00:11Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo Conflicts: tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
        Hide
        hjkim Hyoungjun Kim added a comment -

        I'll added "tajo.optimizer.join.enable" property in a Session. User can be enable or disable a Join Optimizer per Query.

        Show
        hjkim Hyoungjun Kim added a comment - I'll added "tajo.optimizer.join.enable" property in a Session. User can be enable or disable a Join Optimizer per Query.

          People

          • Assignee:
            hjkim Hyoungjun Kim
            Reporter:
            hjkim Hyoungjun Kim
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development