Casey Ching has uploaded a new patch set (#6). Change subject: IMPALA-2848: Simplify creation of a new Kudu table ......................................................................
IMPALA-2848: Simplify creation of a new Kudu table Changes: 1) Add PRIMARY KEY at the column and table level. This syntax is fairly standard. When used at the column level, only one column can be marked as a key. When used at the table level, multiple columns can be used as a key. Only Kudu tables are allowed to use PRIMARY KEY. The old "kudu.key_columns" table property is no longer accepted though it is still used internally. "PRIMARY" is now a key word. "KEY" is expected to be common enough that the ident style declaration is used instead to avoid conflicts. 2) Infer a Kudu table name if none was given. The table property "kudu.table_name" is now optional. If not given, the Kudu table name will be created based on the Hive Metastore database and table name. "CREATE TABLE foo.bar (i INT PRIMARY KEY) STORED AS KUDU" will create a table in Kudu named "foo.bar". If the database is "default" then the Kudu table name will not include the database. 3) Moved the kudu_master_addrs flag from catalogd to impalad. The flag was originally in catalogd so there would only be one definition of the value. Unfortunately the way CTAS is implemented, the complete to-be-created table definition needs to be available during analysis. The most practical thing to do is to move the flag to the impalad so it is easily accessible. 4) Remove throwing of TableLoadingExceptions for Kudu tables. This came up while working on #3. Throwing TableLoadingExceptions makes the tables unfixable by the user. (More testing needs to be done, particularly the case where all columns fail to load. If not using TableLoadingExceptions turns out to cause more problems, I'll revert this part.) Change-Id: Iba5714941a81bad7a410c850e4037637cffaf8ab --- M be/src/catalog/catalog.cc M be/src/service/frontend.cc M bin/start-impala-cluster.py M fe/src/main/cup/sql-parser.cup M fe/src/main/java/com/cloudera/impala/analysis/ColumnDef.java M fe/src/main/java/com/cloudera/impala/analysis/CreateTableAsSelectStmt.java M fe/src/main/java/com/cloudera/impala/analysis/CreateTableLikeFileStmt.java M fe/src/main/java/com/cloudera/impala/analysis/CreateTableStmt.java M fe/src/main/java/com/cloudera/impala/analysis/DistributeParam.java M fe/src/main/java/com/cloudera/impala/analysis/TableDef.java M fe/src/main/java/com/cloudera/impala/analysis/ToSqlUtils.java M fe/src/main/java/com/cloudera/impala/catalog/Catalog.java M fe/src/main/java/com/cloudera/impala/catalog/CatalogServiceCatalog.java M fe/src/main/java/com/cloudera/impala/catalog/ImpaladCatalog.java M fe/src/main/java/com/cloudera/impala/catalog/KuduTable.java M fe/src/main/java/com/cloudera/impala/catalog/delegates/KuduDdlDelegate.java M fe/src/main/java/com/cloudera/impala/planner/HdfsPartitionFilter.java M fe/src/main/java/com/cloudera/impala/service/CatalogOpExecutor.java M fe/src/main/java/com/cloudera/impala/service/Frontend.java M fe/src/main/java/com/cloudera/impala/service/JniCatalog.java M fe/src/main/java/com/cloudera/impala/service/JniFrontend.java M fe/src/main/java/com/cloudera/impala/util/KuduUtil.java M fe/src/main/jflex/sql-scanner.flex M fe/src/test/java/com/cloudera/impala/analysis/AnalyzeDDLTest.java M fe/src/test/java/com/cloudera/impala/analysis/ParserTest.java M fe/src/test/java/com/cloudera/impala/service/JdbcTest.java M fe/src/test/java/com/cloudera/impala/testutil/CatalogServiceTestCatalog.java M fe/src/test/java/com/cloudera/impala/testutil/ImpaladTestCatalog.java M testdata/bin/generate-schema-statements.py M testdata/datasets/functional/functional_schema_template.sql M testdata/workloads/functional-query/queries/QueryTest/kudu-scan-node.test D testdata/workloads/functional-query/queries/QueryTest/kudu-show-create.test M testdata/workloads/functional-query/queries/QueryTest/kudu_alter.test M testdata/workloads/functional-query/queries/QueryTest/kudu_crud.test M testdata/workloads/functional-query/queries/QueryTest/kudu_partition_ddl.test M testdata/workloads/functional-query/queries/QueryTest/kudu_stats.test M tests/common/__init__.py M tests/common/kudu_test_suite.py M tests/conftest.py M tests/custom_cluster/test_kudu.py M tests/query_test/test_kudu.py 41 files changed, 772 insertions(+), 619 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala refs/changes/84/2984/6 -- To view, visit http://gerrit.cloudera.org:8080/2984 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iba5714941a81bad7a410c850e4037637cffaf8ab Gerrit-PatchSet: 6 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Casey Ching <[email protected]> Gerrit-Reviewer: Casey Ching <[email protected]> Gerrit-Reviewer: Dimitris Tsirogiannis <[email protected]>
