You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by Hyunsik Choi <hy...@apache.org> on 2014/03/16 14:22:09 UTC

Review Request 19262: TAJO-353: Add Database support to Tajo

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

Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

> On March 17, 2014, 11:46 p.m., Jung JaeHwa wrote:
> > Thanks Hyunsik.
> > It looks good overall, and I tested it on my local cluster.
> > But when I applied it at HCatalogStore, TajoMaster failed to start up as follows:
> > 
> > 2014-03-17 23:38:25,225 ERROR catalog.CatalogServer (CatalogServer.java:existTablespace(262)) - org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
> > 2014-03-17 23:38:25,226 ERROR catalog.AbstractCatalogClient (AbstractCatalogClient.java:existTablespace(105)) - com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
> > com.google.protobuf.ServiceException: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
> > 	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:107)
> > 	at org.apache.tajo.catalog.AbstractCatalogClient.existTablespace(AbstractCatalogClient.java:98)
> > 	at org.apache.tajo.master.TajoMaster.checkBaseTBSpaceAndDatabase(TajoMaster.java:391)
> > 	at org.apache.tajo.master.TajoMaster.serviceStart(TajoMaster.java:351)
> > 	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
> > 	at org.apache.tajo.master.TajoMaster.main(TajoMaster.java:574)
> > Caused by: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
> > 	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:263)
> > 	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:101)
> > 	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:98)
> > 	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:97)
> > 	... 5 more
> > Caused by: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
> > 	at org.apache.tajo.catalog.store.HCatalogStore.existTablespace(HCatalogStore.java:299)
> > 	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:256)
> > 	... 8 more
> > 
> > If possible, could you check AbstractCatalogClient.existTablespace?

I tested it on TestHCatalogStore, and tested it on a real cluster using MySQL and Derby. But, I haven't tested it with a running Apache Hive. The error is caused by createTablespace/existsTablespace/dropTablespace() which are not implemented in HCatalogStore. I'll submit the updated patch which removes UnimplementedException in HCatalogStore.


- Hyunsik


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


On March 17, 2014, 4:50 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 17, 2014, 4:50 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review37377
-----------------------------------------------------------


Thanks Hyunsik.
It looks good overall, and I tested it on my local cluster.
But when I applied it at HCatalogStore, TajoMaster failed to start up as follows:

2014-03-17 23:38:25,225 ERROR catalog.CatalogServer (CatalogServer.java:existTablespace(262)) - org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
2014-03-17 23:38:25,226 ERROR catalog.AbstractCatalogClient (AbstractCatalogClient.java:existTablespace(105)) - com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
com.google.protobuf.ServiceException: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:107)
	at org.apache.tajo.catalog.AbstractCatalogClient.existTablespace(AbstractCatalogClient.java:98)
	at org.apache.tajo.master.TajoMaster.checkBaseTBSpaceAndDatabase(TajoMaster.java:391)
	at org.apache.tajo.master.TajoMaster.serviceStart(TajoMaster.java:351)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
	at org.apache.tajo.master.TajoMaster.main(TajoMaster.java:574)
Caused by: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:263)
	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:101)
	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:98)
	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:97)
	... 5 more
Caused by: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.catalog.store.HCatalogStore.existTablespace(HCatalogStore.java:299)
	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:256)
	... 8 more

If possible, could you check AbstractCatalogClient.existTablespace?

- Jung JaeHwa


On March 17, 2014, 7:50 a.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 17, 2014, 7:50 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review37375
-----------------------------------------------------------


Thanks Hyunsik.
It looks good overall, and I tested it on my local cluster.
But when I applied it at HCatalogStore, TajoMaster failed to start up as follows:

2014-03-17 23:38:25,225 ERROR catalog.CatalogServer (CatalogServer.java:existTablespace(262)) - org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
2014-03-17 23:38:25,226 ERROR catalog.AbstractCatalogClient (AbstractCatalogClient.java:existTablespace(105)) - com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
com.google.protobuf.ServiceException: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:107)
	at org.apache.tajo.catalog.AbstractCatalogClient.existTablespace(AbstractCatalogClient.java:98)
	at org.apache.tajo.master.TajoMaster.checkBaseTBSpaceAndDatabase(TajoMaster.java:391)
	at org.apache.tajo.master.TajoMaster.serviceStart(TajoMaster.java:351)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
	at org.apache.tajo.master.TajoMaster.main(TajoMaster.java:574)
Caused by: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:263)
	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:101)
	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:98)
	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:97)
	... 5 more
Caused by: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.catalog.store.HCatalogStore.existTablespace(HCatalogStore.java:299)
	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:256)
	... 8 more

If possible, could you check AbstractCatalogClient.existTablespace?

- Jung JaeHwa


On March 17, 2014, 7:50 a.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 17, 2014, 7:50 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review37376
-----------------------------------------------------------


Thanks Hyunsik.
It looks good overall, and I tested it on my local cluster.
But when I applied it at HCatalogStore, TajoMaster failed to start up as follows:

2014-03-17 23:38:25,225 ERROR catalog.CatalogServer (CatalogServer.java:existTablespace(262)) - org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
2014-03-17 23:38:25,226 ERROR catalog.AbstractCatalogClient (AbstractCatalogClient.java:existTablespace(105)) - com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
com.google.protobuf.ServiceException: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:107)
	at org.apache.tajo.catalog.AbstractCatalogClient.existTablespace(AbstractCatalogClient.java:98)
	at org.apache.tajo.master.TajoMaster.checkBaseTBSpaceAndDatabase(TajoMaster.java:391)
	at org.apache.tajo.master.TajoMaster.serviceStart(TajoMaster.java:351)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
	at org.apache.tajo.master.TajoMaster.main(TajoMaster.java:574)
Caused by: com.google.protobuf.ServiceException: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:263)
	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:101)
	at org.apache.tajo.catalog.AbstractCatalogClient$3.call(AbstractCatalogClient.java:98)
	at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:97)
	... 5 more
Caused by: org.apache.tajo.exception.UnimplementedException: existTablespace() is not implemented yet
	at org.apache.tajo.catalog.store.HCatalogStore.existTablespace(HCatalogStore.java:299)
	at org.apache.tajo.catalog.CatalogServer$CatalogProtocolHandler.existTablespace(CatalogServer.java:256)
	... 8 more

If possible, could you check AbstractCatalogClient.existTablespace?

- Jung JaeHwa


On March 17, 2014, 7:50 a.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 17, 2014, 7:50 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review38040
-----------------------------------------------------------

Ship it!


+1

Thank you for your contribution.

This patch looks good overall, and I've testes it on my cluster.
It operated successfully on MySQLStore and HCatalogStore.

Push it.

- Jung JaeHwa


On March 20, 2014, 12:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 12:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

> On March 21, 2014, 11:28 a.m., Jung JaeHwa wrote:
> > Thanks Hyunsik.
> > 
> > If possible, could you update a documentation for cli?
> > Because users can't find easily how to change current database.
> > And it should explain also directory policy changes.
> >

As you can see, user documentation update is included in this patch.
I think that the documentation for internal is not trivial right now. I need more time for that.
I'll make additional documentation in another jira issue.


- Hyunsik


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


On March 20, 2014, 9:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 9:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review38031
-----------------------------------------------------------


Thanks Hyunsik.

If possible, could you update a documentation for cli?
Because users can't find easily how to change current database.
And it should explain also directory policy changes.


- Jung JaeHwa


On March 20, 2014, 12:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 12:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

> On March 21, 2014, 11:47 a.m., Jung JaeHwa wrote:
> > tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java, line 34
> > <https://reviews.apache.org/r/19262/diff/7/?file=529622#file529622line34>
> >
> >     I think that this may be a typo.

This is because DATABASES is a reserved keyword in MySQL :)


- Hyunsik


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


On March 20, 2014, 9:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 9:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review38035
-----------------------------------------------------------



tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java
<https://reviews.apache.org/r/19262/#comment69969>

    I think that this may be a typo.


- Jung JaeHwa


On March 20, 2014, 12:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 12:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

Ship it!


Ship It!

- Jihoon Son


On March 20, 2014, 9:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 9:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jinho Kim <jh...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review38062
-----------------------------------------------------------

Ship it!


+++1
This is really great work!

- Jinho Kim


On March 20, 2014, 12:24 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 12:24 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   CHANGES.txt 0304190 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 20, 2014, 9:24 p.m.)


Review request for Tajo.


Changes
-------

Jinho and Jihoon,

Thank you for your detailed comments. I submit the updated patch which reflects Jihoon's comments.
I've verified 'mvn clean install' with various catalog stores, such as MySQLStore, HCatalog Store, and DerbyStore.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs (updated)
-----

  CHANGES.txt 0304190 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/pom.xml d073736 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
  tajo-project/pom.xml 59628a9 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

> On March 20, 2014, 2:29 p.m., Jihoon Son wrote:
> > Hyunsik, thanks for your contribution.
> > This issue is truly necessary and useful.
> > I left some comments for the latest patch.
> > In addition, I got the following error message in TajoMaster when I run Tajo.
> > 
> > 2014-03-20 14:16:39,645 INFO  master.TajoMaster (TajoMaster.java:checkAndInitializeSystemDirectories(260)) - Staging dir: hdfs://localhost:7020/tajo/warehouse
> > 2014-03-20 14:16:40,345 FATAL master.TajoMaster (TajoMaster.java:main(576)) - Error starting TajoMaster
> > java.lang.NoSuchFieldError: INTERNAL_RPC_CLIENT_WORKER_THREAD_NUM
> >         at org.apache.tajo.rpc.RpcChannelFactory.getSharedClientChannelFactory(RpcChannelFactory.java:52)
> >         at org.apache.tajo.rpc.RpcConnectionPool.getPool(RpcConnectionPool.java:52)
> >         at org.apache.tajo.catalog.AbstractCatalogClient.<init>(AbstractCatalogClient.java:56)
> >         at org.apache.tajo.catalog.LocalCatalogWrapper.<init>(LocalCatalogWrapper.java:50)
> >         at org.apache.tajo.master.TajoMaster.init(TajoMaster.java:171)
> >         at org.apache.tajo.master.TajoMaster.main(TajoMaster.java:573)
> > 2014-03-20 14:16:40,358 INFO  mortbay.log (Slf4jLog.java:info(67)) - Stopped SelectChannelConnector@0.0.0.0:26080
> > 2014-03-20 14:16:40,459 INFO  catalog.CatalogServer (CatalogServer.java:stop(183)) - Catalog Server (null) shutdown
> > 2014-03-20 14:16:40,460 WARN  service.AbstractService (ServiceOperations.java:stopQuietly(82)) - When stopping the service org.apache.tajo.master.TajoMaster : java.lang.NullPointerException
> > java.lang.NullPointerException
> >         at org.apache.tajo.rpc.RpcChannelFactory.shutdown(RpcChannelFactory.java:99)
> >         at org.apache.tajo.master.TajoMaster.stop(TajoMaster.java:420)
> >         at org.apache.hadoop.service.ServiceOperations.stop(ServiceOperations.java:52)
> >         at org.apache.hadoop.service.ServiceOperations.stopQuietly(ServiceOperations.java:80)
> >         at org.apache.hadoop.service.ServiceOperations.stopQuietly(ServiceOperations.java:65)
> >         at org.apache.hadoop.service.CompositeService$CompositeServiceShutdownHook.run(CompositeService.java:185)
> >         at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54)
> > 2014-03-20 14:16:40,563 INFO  master.TajoMaster (StringUtils.java:run(627)) - SHUTDOWN_MSG:
> >

It may be caused by obsolete Jar files or already running TajoMaster server and workers. Otherwise, it must have result in compilation error.
Could you check again? 


> On March 20, 2014, 2:29 p.m., Jihoon Son wrote:
> > tajo-client/src/main/proto/ClientProtos.proto, line 46
> > <https://reviews.apache.org/r/19262/diff/6/?file=527806#file527806line46>
> >
> >     PB looks to compile the 'message' variable successfully, but I worry about that it works well. I tried to search about reserved words of PB, but I couldn't. Do you have any knowledge about it?

I think that we don't need to mind this issue. If there is some problem, it must have caused some errors at code generation. We already have used the variable name 'message' for years. In addition, according to PB grammar, the variable name 'message' is theoretically not ambiguous against the keyword 'message'. :)


> On March 20, 2014, 2:29 p.m., Jihoon Son wrote:
> > tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java, line 183
> > <https://reviews.apache.org/r/19262/diff/6/?file=527849#file527849line183>
> >
> >     Do we need to maintain this code?

It is out of scope of my change. In my opinion, other changes which are not related to the purpose of the issue should not be mandatory. Otherwise, we will see many unrelated changes, and it will make reviews hard to review patches.


> On March 20, 2014, 2:29 p.m., Jihoon Son wrote:
> > tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java, line 109
> > <https://reviews.apache.org/r/19262/diff/6/?file=527732#file527732line109>
> >
> >     If you change the name of the variable 'name' to 'indexName', the readability would be increased.

Fixed.


- Hyunsik


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


On March 19, 2014, 7:25 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 19, 2014, 7:25 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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


Hyunsik, thanks for your contribution.
This issue is truly necessary and useful.
I left some comments for the latest patch.
In addition, I got the following error message in TajoMaster when I run Tajo.

2014-03-20 14:16:39,645 INFO  master.TajoMaster (TajoMaster.java:checkAndInitializeSystemDirectories(260)) - Staging dir: hdfs://localhost:7020/tajo/warehouse
2014-03-20 14:16:40,345 FATAL master.TajoMaster (TajoMaster.java:main(576)) - Error starting TajoMaster
java.lang.NoSuchFieldError: INTERNAL_RPC_CLIENT_WORKER_THREAD_NUM
        at org.apache.tajo.rpc.RpcChannelFactory.getSharedClientChannelFactory(RpcChannelFactory.java:52)
        at org.apache.tajo.rpc.RpcConnectionPool.getPool(RpcConnectionPool.java:52)
        at org.apache.tajo.catalog.AbstractCatalogClient.<init>(AbstractCatalogClient.java:56)
        at org.apache.tajo.catalog.LocalCatalogWrapper.<init>(LocalCatalogWrapper.java:50)
        at org.apache.tajo.master.TajoMaster.init(TajoMaster.java:171)
        at org.apache.tajo.master.TajoMaster.main(TajoMaster.java:573)
2014-03-20 14:16:40,358 INFO  mortbay.log (Slf4jLog.java:info(67)) - Stopped SelectChannelConnector@0.0.0.0:26080
2014-03-20 14:16:40,459 INFO  catalog.CatalogServer (CatalogServer.java:stop(183)) - Catalog Server (null) shutdown
2014-03-20 14:16:40,460 WARN  service.AbstractService (ServiceOperations.java:stopQuietly(82)) - When stopping the service org.apache.tajo.master.TajoMaster : java.lang.NullPointerException
java.lang.NullPointerException
        at org.apache.tajo.rpc.RpcChannelFactory.shutdown(RpcChannelFactory.java:99)
        at org.apache.tajo.master.TajoMaster.stop(TajoMaster.java:420)
        at org.apache.hadoop.service.ServiceOperations.stop(ServiceOperations.java:52)
        at org.apache.hadoop.service.ServiceOperations.stopQuietly(ServiceOperations.java:80)
        at org.apache.hadoop.service.ServiceOperations.stopQuietly(ServiceOperations.java:65)
        at org.apache.hadoop.service.CompositeService$CompositeServiceShutdownHook.run(CompositeService.java:185)
        at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54)
2014-03-20 14:16:40,563 INFO  master.TajoMaster (StringUtils.java:run(627)) - SHUTDOWN_MSG:



tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
<https://reviews.apache.org/r/19262/#comment69352>

    If you change the name of the variable 'name' to 'indexName', the readability would be increased.



tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
<https://reviews.apache.org/r/19262/#comment69354>

    Would you please add some comments for explaining about the variables of TableDesc?



tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
<https://reviews.apache.org/r/19262/#comment69355>

    Please remove unused imports.



tajo-catalog/tajo-catalog-server/pom.xml
<https://reviews.apache.org/r/19262/#comment69356>

    Please remove a meaningless change



tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java
<https://reviews.apache.org/r/19262/#comment69612>

    You need to add some explanations of this class.



tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java
<https://reviews.apache.org/r/19262/#comment69628>

    Please remove unused variables.



tajo-client/src/main/proto/ClientProtos.proto
<https://reviews.apache.org/r/19262/#comment69629>

    PB looks to compile the 'message' variable successfully, but I worry about that it works well. I tried to search about reserved words of PB, but I couldn't. Do you have any knowledge about it?



tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java
<https://reviews.apache.org/r/19262/#comment69630>

    Do we need to maintain this code?


- Jihoon Son


On March 19, 2014, 7:25 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 19, 2014, 7:25 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 19, 2014, 7:25 p.m.)


Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/pom.xml d073736 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
  tajo-project/pom.xml 59628a9 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 19, 2014, 7:22 p.m.)


Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs (updated)
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/pom.xml d073736 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
  tajo-project/pom.xml 59628a9 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

> On March 19, 2014, 6:23 p.m., Jinho Kim wrote:
> > Hyunsik,
> > We need to increase the MaxPermSize. 128m or more?
> 
> Jinho Kim wrote:
>     Only integration tests

I increased the MaxPermSize in pom.xml, and I fixed the leak of client connections in HCatalogClientPool.


- Hyunsik


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


On March 19, 2014, 7:25 p.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 19, 2014, 7:25 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStoreClientPool.java cc8ff08 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jinho Kim <jh...@apache.org>.

> On March 19, 2014, 9:23 a.m., Jinho Kim wrote:
> > Hyunsik,
> > We need to increase the MaxPermSize. 128m or more?

Only integration tests


- Jinho


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


On March 19, 2014, 7:25 a.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 19, 2014, 7:25 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

Posted by Jinho Kim <jh...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19262/#review37698
-----------------------------------------------------------


Hyunsik,
We need to increase the MaxPermSize. 128m or more?

- Jinho Kim


On March 19, 2014, 7:25 a.m., Hyunsik Choi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19262/
> -----------------------------------------------------------
> 
> (Updated March 19, 2014, 7:25 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-353
>     https://issues.apache.org/jira/browse/TAJO-353
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.
> 
> This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.
> 
> The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.
> 
> I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.
> 
> This patch also includes the documentation updates. You can see the updated pages:
> http://people.apache.org/~hyunsik/TAJO-353/cli.html
> http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
> http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html
> 
> 
> Diffs
> -----
> 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
>   tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
>   tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
>   tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
>   tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
>   tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
>   tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
>   tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
>   tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
>   tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
>   tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
>   tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
>   tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
>   tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
>   tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
>   tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
>   tajo-client/src/main/proto/ClientProtos.proto c0c9462 
>   tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
>   tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
>   tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
>   tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
>   tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
>   tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
>   tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
>   tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
>   tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
>   tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
>   tajo-core/tajo-core-backend/pom.xml d073736 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
>   tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
>   tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
>   tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
>   tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
>   tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
>   tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
>   tajo-project/pom.xml 59628a9 
> 
> Diff: https://reviews.apache.org/r/19262/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install -Phcatalog-0.12.0
> 
> 
> Thanks,
> 
> Hyunsik Choi
> 
>


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 19, 2014, 4:25 p.m.)


Review request for Tajo.


Changes
-------

I missed the random port configuration for CatalogServer with HCatalogStore.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs (updated)
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/pom.xml d073736 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java 9fcfca9 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
  tajo-project/pom.xml 59628a9 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 19, 2014, 12:35 p.m.)


Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs (updated)
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java fc2fdda 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/pom.xml 03e92ec 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/pom.xml d073736 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java 323a7cf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1.tbl 8095c0b 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestCreateTable/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1.tbl 6405b31 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2.tbl 68340bf 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1.tbl 63db89d 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2.tbl f33b22c 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestNetTypes/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1.tbl a1ebde3 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table1/table1.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2.tbl bc237af 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestSortQuery/table2/table2.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types.sql 92a4990 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestCreateTable/create_table_various_types_for_hcatalog.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 
  tajo-project/pom.xml 59628a9 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 17, 2014, 4:50 p.m.)


Review request for Tajo.


Changes
-------

I fixed some missing methods in HCatalogStore, and I recovered multiple lines history and fix the bug of history lost.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs (updated)
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoFileHistory.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJdbc/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 16, 2014, 10:26 p.m.)


Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 16, 2014, 10:25 p.m.)


Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi


Re: Review Request 19262: TAJO-353: Add Database support to Tajo

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

(Updated March 16, 2014, 10:22 p.m.)


Review request for Tajo.


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


Repository: tajo


Description
-------

I've just submitted the patch. This work took longer time than I expected. It has required a bunch of changes. I'm very sorry for submitting a big patch.

This patch adds database namespace to Tajo catalog and all query processing related things. So, we can use join statements on multiple tables across different databases. Also, this patch adds CREATE DATABASE [IF NOT EXISTS] and DROP DATABASE [IF EXISTS] statements to parser, and planner.

The database namespace requires user session system because each connected user has to keep current database. This patch also includes session system, and session commands to TajoCli. Besides, I've filled some methods and changed Tajo JDBC to support database namespace and its related things.

I've tested the patch on Derby, MySQL, and HCatalog catalog stores. For that, I've improved TestCatalog to directly work on MySQL instance. You can see how you run TestCatalog test with MySQLStore at http://wiki.apache.org/tajo/UnitTests. And, I've added lots of unit tests for database namespaces and almost things I've changed.

This patch also includes the documentation updates. You can see the updated pages:
http://people.apache.org/~hyunsik/TAJO-353/cli.html
http://people.apache.org/~hyunsik/TAJO-353/sql_language/ddl.html
http://people.apache.org/~hyunsik/TAJO-353/configuration/catalog_configuration.html


Diffs (updated)
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/ColumnReferenceExpr.java 97a6a3a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java 7ad802c 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropDatabase.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/DropTable.java 83e1707 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 7122af8 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java 1932db5 
  tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/CatalogService.java 494ac0b 
  tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto 6a96b4e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java fa23da1 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java 2a6727e 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java 1e51cc2 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java 0ef8497 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java 6199259 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java 153d5f0 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsIndexException.java a254514 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTableException.java a2e3a6a 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/AlreadyExistsTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/InvalidTableException.java c19888f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoPartitionedTableException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchDatabaseException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java 7765c31 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchIndexException.java e22e8bc 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTableException.java 80b3b9f 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchTablespaceException.java PRE-CREATION 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionDesc.java e89ee72 
  tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java 4a8123a 
  tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto 35171cc 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java 065ec9d 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java 6a9adc7 
  tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java d6f75ba 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java 5387673 
  tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java cb3973a 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java 621b475 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java ef485ef 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java db15c02 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/DerbyStore.java e384194 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java 1fef286 
  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MySQLStore.java bbcdb72 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/common/meta.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/databases_idx.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partition_methods.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/stats.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql PRE-CREATION 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java 08905dd 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogConstants.java f7b5c19 
  tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java a6b5b9a 
  tajo-client/src/main/java/org/apache/tajo/cli/ConnectDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/CopyrightCommand.java 809cd37 
  tajo-client/src/main/java/org/apache/tajo/cli/DescFunctionCommand.java e9f4964 
  tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java bdeb173 
  tajo-client/src/main/java/org/apache/tajo/cli/ExitCommand.java dcf8893 
  tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 85ba808 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidClientSessionException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/InvalidStatementException.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ListDatabaseCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/ParsedResult.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/SimpleParser.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java 3026d9c 
  tajo-client/src/main/java/org/apache/tajo/cli/TajoShellCommand.java 2b61068 
  tajo-client/src/main/java/org/apache/tajo/cli/UnsetCommand.java PRE-CREATION 
  tajo-client/src/main/java/org/apache/tajo/cli/VersionCommand.java 744c786 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 7fc6780 
  tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java 486ff9f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java f4d685f 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java 4f2e586 
  tajo-client/src/main/proto/ClientProtos.proto c0c9462 
  tajo-client/src/main/proto/TajoMasterClientProtocol.proto 93e5af9 
  tajo-common/src/main/java/org/apache/tajo/TajoConstants.java d4ce48f 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 3ca17a0 
  tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java cae7129 
  tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java 778bcbb 
  tajo-common/src/main/java/org/apache/tajo/util/Pair.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoBufUtil.java 0dc7f24 
  tajo-common/src/main/java/org/apache/tajo/util/ProtoUtil.java PRE-CREATION 
  tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java b5aa61c 
  tajo-common/src/main/java/org/apache/tajo/util/TUtil.java 1eb55bc 
  tajo-common/src/main/proto/PrimitiveProtos.proto e722190 
  tajo-common/src/main/proto/TajoIdProtos.proto a87c825 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4 1ceaca8 
  tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 71c16f2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java 6d95fe1 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java a8407fd 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/AlgebraVisitor.java acb9008 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java cf36539 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java 94e2482 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java e2f65ad 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 0dc8f82 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 8280d3e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b08109d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 305548c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java bf41996 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 01bacc0 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java a928fb5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java 508740f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/VerificationState.java e1b136d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 461c5d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java b8e7143 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropDatabaseNode.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 0c6675f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java acaf85b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 80a0d7a 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java 1db4c4b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/ProtoUtil.java 93eca22 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java d7ded93 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMaster.java c42b0f3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/TajoMasterClientService.java dc70f23 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/YarnTaskRunnerLauncherImpl.java 28b5f08 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/QueryStartEvent.java 2c8b822 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/metrics/CatalogMetricsGaugeSet.java 08fff53 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Query.java 02ed34e 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryInProgress.java efb9c06 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryJobManager.java 6cfb600 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java 9dddbf7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterManagerService.java e3e0260 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 7719a85 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java 1bcf38b 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/InvalidSessionException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/NoSuchSessionVariableException.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/Session.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionConstants.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEvent.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionEventType.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/session/SessionManager.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/proto/TajoWorkerProtocol.proto 10e8ec2 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp 397146a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java 144ca1b 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java ddb9952 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/benchmark/TestTPCH.java f0a0812 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/cli/TestSimpleParser.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestDDLBuilder.java 23b0877 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 3dac2f1 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java 2982f83 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java f9c50ac 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java 3e64016 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java 6107ca7 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java bfd1f81 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java 228d42d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java c113559 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java 572a60a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java 4839451 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java 61d56fc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java e6ffac2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java 3519d1c 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java 60d90d9 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java 6f0b4e2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java ebc35d3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java bee7547 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java 1ac202e 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java 5977c95 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java 601621d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java 1975a57 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java cb9c419 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java d2c29a3 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b4b588d 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java 00fb386 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java 902a73a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCaseByCases.java 203d113 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateDatabase.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java f39ceb8 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 8ecf8ed 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java 8b2db9f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinOnPartitionedTables.java 4bda517 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 0c68fa6 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestNetTypes.java bba47cc 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java fece424 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 23d7bdb 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 60c8497 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTableSubQuery.java bbd533f 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestUnionQuery.java 22830bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 3610382 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 445cd69 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java d862e87 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestGlobalPlanner.java 4c7c9c5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java 5d3f7bf 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java 65b7d1e 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk1.sql 910138f 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk2.sql a68e40a 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk3.sql f75c8dc 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithAsterisk4.sql 100be80 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table1_ddl.sql 45df638 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/table2_ddl.sql 73fe19e 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk3.result f4e8c88 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithAsterisk4.result 95b5bc3 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestTajoJDBC/getTables2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDL.result a16119f 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForBaseTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/testBuildDDLForExternalTable.result PRE-CREATION 
  tajo-docs/src/main/sphinx/cli.rst 6c91d2f 
  tajo-docs/src/main/sphinx/configuration/catalog_configuration.rst 86899ba 
  tajo-docs/src/main/sphinx/configuration/cluster_setup.rst e9715f3 
  tajo-docs/src/main/sphinx/sql_language/ddl.rst 2f0e9d4 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoConnection.java b751d5d 
  tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b3e67bc 

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


Testing
-------

mvn clean install -Phcatalog-0.12.0


Thanks,

Hyunsik Choi