Alex Behm has posted comments on this change. Change subject: IMPALA-2890: Support ALTER TABLE statements for Kudu tables ......................................................................
Patch Set 4: (9 comments) Last round, we're pretty much done. http://gerrit.cloudera.org:8080/#/c/5136/4/common/thrift/JniCatalog.thrift File common/thrift/JniCatalog.thrift: Line 200: // If true, an error is raised if an error occurs while adding/dropping a range If false, errors while adding/dropping a range partition are ignored. Line 202: 2: required bool throw_on_error ignore_errors? (throw_on_error is a little weird because that seems to be the conventional behavior) http://gerrit.cloudera.org:8080/#/c/5136/4/fe/src/main/java/org/apache/impala/analysis/AlterTableAddDropRangePartitionStmt.java File fe/src/main/java/org/apache/impala/analysis/AlterTableAddDropRangePartitionStmt.java: Line 33: private final boolean throwOnError_; ignoreErrors_? Line 91: AlterTableStmt.analyzeAddDropRangePartition(rangePartitionSpec_, (KuduTable) table, move analyzeAddDropRangePartition() inside this class, might even just inline it here http://gerrit.cloudera.org:8080/#/c/5136/2/fe/src/main/java/org/apache/impala/analysis/AlterTableAddReplaceColsStmt.java File fe/src/main/java/org/apache/impala/analysis/AlterTableAddReplaceColsStmt.java: Line 123: if (c.hasEncoding() || c.hasCompression() || c.hasBlockSize()) { > Unfortunately we can't do that in this case. There is no Kudu API call that Makes sense. Do you know if there's a Kudu JIRA? We should file an Impala one to track making Impala's behavior regarding handling of these options consistent. http://gerrit.cloudera.org:8080/#/c/5136/4/fe/src/main/java/org/apache/impala/service/CatalogOpExecutor.java File fe/src/main/java/org/apache/impala/service/CatalogOpExecutor.java: Line 511: private boolean altersKuduTable(TAlterTableType type) { brief comment, something like: Returns true if the given alteration type changes the underlying table stored in Kudu in addition to the HMS table. Line 556: if (setResultSet) { dead code block (no more alteration types that produce result sets) http://gerrit.cloudera.org:8080/#/c/5136/4/testdata/workloads/functional-query/queries/QueryTest/kudu_alter.test File testdata/workloads/functional-query/queries/QueryTest/kudu_alter.test: Line 136: select count(*) from tbl_to_alter let's also add a count(col) and two where-clause predicates, one that can be pushed to Kudu and one that must be evaluated by Impala to make sure that works on empty tables Line 184: # Insert a row that has nulls on non-nullable columns non-nullable columns with default values -- To view, visit http://gerrit.cloudera.org:8080/5136 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I04bc87e04e05da5cc03edec79d13cedfd2012896 Gerrit-PatchSet: 4 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Dimitris Tsirogiannis <dtsirogian...@cloudera.com> Gerrit-Reviewer: Alex Behm <alex.b...@cloudera.com> Gerrit-Reviewer: Dimitris Tsirogiannis <dtsirogian...@cloudera.com> Gerrit-HasComments: Yes