You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by Jihoon Son <ji...@apache.org> on 2014/04/24 10:43:27 UTC

Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/
-----------------------------------------------------------

Review request for Tajo.


Bugs: TAJO-494
    https://issues.apache.org/jira/browse/TAJO-494


Repository: tajo


Description
-------

In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.


Diffs
-----

  pom.xml 5105584 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
  tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 606ca88 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 3c85662 
  tajo-client/src/main/proto/ClientProtos.proto bdc271e 
  tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java 35b8ab8 
  tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java c6facb1 
  tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
  tajo-core/src/main/proto/TajoWorkerProtocol.proto 78da10f 
  tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java 961184c 
  tajo-core/src/test/java/org/apache/tajo/cli/TestExecExternalShellCommand.java 9c6e760 
  tajo-core/src/test/java/org/apache/tajo/engine/parser/TestSQLAnalyzer.java 2010502 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java ca452b7 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectByJson.json PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectByJson.result PRE-CREATION 

Diff: https://reviews.apache.org/r/20658/diff/


Testing
-------


Thanks,

Jihoon Son


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Jihoon Son <ji...@apache.org>.

> On May 12, 2014, 12:12 p.m., Hyunsik Choi wrote:
> > The proposal seems reasonable. Now, I'd like to throw +1 for the specification.
> > 
> > But, I think that stable specification may take longer time. After we make some application using it, we would validate the specification and find some possible problems from the specification. Now, we need to mark the specification as a draft for a while.
> > 
> > Also, the patch needs rebase against the latest revision.

Thanks Hyunsik!
I agree with that this patch is just a draft.
Actually, I've been testing it by making an application which executes json queries.
Until now, I couldn't find any problems fortunately. 
As you said, we can fix problems later if they occurs.


- Jihoon


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/#review42661
-----------------------------------------------------------


On May 7, 2014, 10:19 a.m., Jihoon Son wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20658/
> -----------------------------------------------------------
> 
> (Updated May 7, 2014, 10:19 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-494
>     https://issues.apache.org/jira/browse/TAJO-494
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.
> 
> 
> Diffs
> -----
> 
>   pom.xml 5105584 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IntervalLiteral.java 6e0f2d0 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
>   tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 959e9df 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 3c85662 
>   tajo-client/src/main/proto/ClientProtos.proto bdc271e 
>   tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java c87ad84 
>   tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java c6facb1 
>   tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
>   tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
>   tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java bf5891a 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
>   tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/20658/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jihoon Son
> 
>


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Hyunsik Choi <hy...@apache.org>.

> On May 12, 2014, 12:12 p.m., Hyunsik Choi wrote:
> > The proposal seems reasonable. Now, I'd like to throw +1 for the specification.
> > 
> > But, I think that stable specification may take longer time. After we make some application using it, we would validate the specification and find some possible problems from the specification. Now, we need to mark the specification as a draft for a while.
> > 
> > Also, the patch needs rebase against the latest revision.
> 
> Jihoon Son wrote:
>     Thanks Hyunsik!
>     I agree with that this patch is just a draft.
>     Actually, I've been testing it by making an application which executes json queries.
>     Until now, I couldn't find any problems fortunately. 
>     As you said, we can fix problems later if they occurs.

If possible, could you share the your application on github? If not possible, it would be great if you share how to use it. I think that many developers will have interest in this feature. I think that we need to spread out such awesome features.


- Hyunsik


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/#review42661
-----------------------------------------------------------


On May 7, 2014, 10:19 a.m., Jihoon Son wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20658/
> -----------------------------------------------------------
> 
> (Updated May 7, 2014, 10:19 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-494
>     https://issues.apache.org/jira/browse/TAJO-494
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.
> 
> 
> Diffs
> -----
> 
>   pom.xml 5105584 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IntervalLiteral.java 6e0f2d0 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
>   tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 959e9df 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 3c85662 
>   tajo-client/src/main/proto/ClientProtos.proto bdc271e 
>   tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java c87ad84 
>   tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java c6facb1 
>   tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
>   tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
>   tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java bf5891a 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
>   tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/20658/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jihoon Son
> 
>


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Jihoon Son <ji...@apache.org>.

> On May 12, 2014, 12:12 p.m., Hyunsik Choi wrote:
> > The proposal seems reasonable. Now, I'd like to throw +1 for the specification.
> > 
> > But, I think that stable specification may take longer time. After we make some application using it, we would validate the specification and find some possible problems from the specification. Now, we need to mark the specification as a draft for a while.
> > 
> > Also, the patch needs rebase against the latest revision.
> 
> Jihoon Son wrote:
>     Thanks Hyunsik!
>     I agree with that this patch is just a draft.
>     Actually, I've been testing it by making an application which executes json queries.
>     Until now, I couldn't find any problems fortunately. 
>     As you said, we can fix problems later if they occurs.
> 
> Hyunsik Choi wrote:
>     If possible, could you share the your application on github? If not possible, it would be great if you share how to use it. I think that many developers will have interest in this feature. I think that we need to spread out such awesome features.

Sure. Here is the github repository (https://github.com/jihoonson/query-coordinator). 
Query coordinator can transform simplified queries to the standard SQL form.
Since the transformation result is an expression tree, Query coordinator simply converts it as a JSON string and executes using TajoClient.executeQueryWithJson(). 


- Jihoon


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/#review42661
-----------------------------------------------------------


On May 12, 2014, 2:06 p.m., Jihoon Son wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20658/
> -----------------------------------------------------------
> 
> (Updated May 12, 2014, 2:06 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-494
>     https://issues.apache.org/jira/browse/TAJO-494
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.
> 
> 
> Diffs
> -----
> 
>   pom.xml 47643e4 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IntervalLiteral.java 6e0f2d0 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
>   tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 7489351 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java d981917 
>   tajo-client/src/main/proto/ClientProtos.proto bdc271e 
>   tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java 4155609 
>   tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java 8c16879 
>   tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
>   tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
>   tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java 3843c58 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
>   tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/20658/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jihoon Son
> 
>


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/#review42661
-----------------------------------------------------------

Ship it!


The proposal seems reasonable. Now, I'd like to throw +1 for the specification.

But, I think that stable specification may take longer time. After we make some application using it, we would validate the specification and find some possible problems from the specification. Now, we need to mark the specification as a draft for a while.

Also, the patch needs rebase against the latest revision.

- Hyunsik Choi


On May 7, 2014, 10:19 a.m., Jihoon Son wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20658/
> -----------------------------------------------------------
> 
> (Updated May 7, 2014, 10:19 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-494
>     https://issues.apache.org/jira/browse/TAJO-494
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.
> 
> 
> Diffs
> -----
> 
>   pom.xml 5105584 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IntervalLiteral.java 6e0f2d0 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
>   tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 959e9df 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 3c85662 
>   tajo-client/src/main/proto/ClientProtos.proto bdc271e 
>   tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java c87ad84 
>   tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java c6facb1 
>   tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
>   tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
>   tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
>   tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java bf5891a 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
>   tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
>   tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
>   tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
>   tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/20658/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jihoon Son
> 
>


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/
-----------------------------------------------------------

(Updated May 12, 2014, 2:06 p.m.)


Review request for Tajo.


Changes
-------

This is the rebased patch.


Bugs: TAJO-494
    https://issues.apache.org/jira/browse/TAJO-494


Repository: tajo


Description
-------

In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.


Diffs (updated)
-----

  pom.xml 47643e4 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/IntervalLiteral.java 6e0f2d0 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
  tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 7489351 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java d981917 
  tajo-client/src/main/proto/ClientProtos.proto bdc271e 
  tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java 4155609 
  tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java 8c16879 
  tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
  tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
  tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java 3843c58 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
  tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 

Diff: https://reviews.apache.org/r/20658/diff/


Testing
-------


Thanks,

Jihoon Son


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/
-----------------------------------------------------------

(Updated May 7, 2014, 10:19 a.m.)


Review request for Tajo.


Changes
-------

The expression for 'IntervalLiteral' is added.


Bugs: TAJO-494
    https://issues.apache.org/jira/browse/TAJO-494


Repository: tajo


Description
-------

In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.


Diffs (updated)
-----

  pom.xml 5105584 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/IntervalLiteral.java 6e0f2d0 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
  tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 959e9df 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 3c85662 
  tajo-client/src/main/proto/ClientProtos.proto bdc271e 
  tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java c87ad84 
  tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java c6facb1 
  tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
  tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
  tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java bf5891a 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
  tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 

Diff: https://reviews.apache.org/r/20658/diff/


Testing
-------


Thanks,

Jihoon Son


Re: Review Request 20658: TAJO-494: Extend TajoClient to run a query with a plan context serialized as the JSON form

Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20658/
-----------------------------------------------------------

(Updated April 30, 2014, 10:17 p.m.)


Review request for Tajo.


Changes
-------

I fixed some bugs and added unit tests.
Also, I removed unnecessary codes.


Bugs: TAJO-494
    https://issues.apache.org/jira/browse/TAJO-494


Repository: tajo


Description
-------

In some OLAP applications which has a separate query engine such as Tajo, they accept SQL-like languages and parse them to generate query plans. Mondrian is a representative example of these applications. If TajoClient accepts query plans of the JSON form, user queries can be efficiently executed without the duplicated parse phase.


Diffs (updated)
-----

  pom.xml 5105584 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Aggregation.java d1a6bd3 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTable.java 4bb0ed2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/AlterTablespace.java ceec08b 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BetweenPredicate.java 4409f4e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/BinaryOperator.java fa53067 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CaseWhenPredicate.java 6af1fb2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CastExpr.java 24f6415 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnDefinition.java ce935dd 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 58f7b81 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java a4ebc84 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 63ca364 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DataTypeExpr.java 044a372 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateLiteral.java 54b2b20 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DateValue.java ad9d575 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java 88e799c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java cb0bbf4 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java fcb8531 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 1ca42d7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/FunctionExpr.java 91517e7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java d7eb4ed 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Having.java 53bd9ba 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/InPredicate.java 4eafe6e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Insert.java c427a39 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/IsNullPredicate.java 40f5dd2 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Join.java 258f750 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/JsonHelper.java f05a4ea 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Limit.java a217c5e 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java 2978c06 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/NamedExpr.java bd73481 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/PatternMatchPredicate.java 6f5ab68 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Projection.java 0e8ed46 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/QualifiedAsteriskExpr.java d26deb9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Relation.java 406794a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/RelationList.java 18c4ce9 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ScalarSubQuery.java 425c08f 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Selection.java 364e1b7 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SetOperation.java 08ebd6a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SignedExpr.java 7b3438c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/SimpleTableSubQuery.java 7bd3b78 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Sort.java c047c54 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TablePrimarySubQuery.java 953c080 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeLiteral.java e939128 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimeValue.java b41b644 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/TimestampLiteral.java cb6f5a1 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/UnaryOperator.java 2a1e730 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ValueListExpr.java 8d51a95 
  tajo-algebra/src/test/java/org/apache/tajo/algebra/TestExpr.java f327739 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 959e9df 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 3c85662 
  tajo-client/src/main/proto/ClientProtos.proto bdc271e 
  tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java 35b8ab8 
  tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java c6facb1 
  tajo-core/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java dd996e6 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java de323cd 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryInfo.java 9e455ae 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java ca45534 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 523f5ba 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java 43c85d7 
  tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 4a14359 
  tajo-core/src/main/proto/TajoWorkerProtocol.proto 5d4ae44 
  tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java 961184c 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 9e3c375 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 8692070 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 37a748c 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 206e638 
  tajo-core/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java 9be0302 
  tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupbyWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestJoinQuery/testJoinWithJson2.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSortQuery/testSortWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestSortQuery/testTopkWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestTableSubQuery/testGroupbySubqueryWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/queries/TestTableSubQuery/testJoinSubqueryWithJson.json PRE-CREATION 
  tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabasesWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestJoinQuery/testJoinWithJson2.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSelectQuery/testSelectWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSortQuery/testSortWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestSortQuery/testTopkWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestTableSubQuery/testGroupbySubqueryWithJson.result PRE-CREATION 
  tajo-core/src/test/resources/results/TestTableSubQuery/testJoinSubqueryWithJson.result PRE-CREATION 

Diff: https://reviews.apache.org/r/20658/diff/


Testing
-------


Thanks,

Jihoon Son