Alexey Serbin has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/18993 )
Change subject: KUDU-3353 [schema] Add an immutable attribute on column schema (part 3) ...................................................................... KUDU-3353 [schema] Add an immutable attribute on column schema (part 3) This is a follow-up to b6eedb224f715ad86378a92d25f09c2084b0e2b7. This patch contains the Java client-side changes of the "new column attribute IMMUTABLE" feature, including: 1. Adds a new 'immutable(boolean immutable)' method to class ColumnSchemaBuilder to add/remove IMMUTABLE attribute to/from a column. 2. Adds a new 'isImmutable()' method to class ColumnSchema to check if the attribute is set for a column schema. 3. Adds a new 'hasImmutableColumns()' method to class Schema to check if there's at least one immutable column for a table schema. 4. Adds a new 'changeImmutable(String name, boolean immutable)' method to class AlterTableOptions to change the immutable attribute for a column. 5. Adds a new UpsertIgnore operation in the client API: use the newly added KuduTable.newUpsertIgnore() to create a new instance of such operation. Both UpsertIgnore and UpdateIgnore operations can be used to ignore errors on updating cells of immutable columns. 6. Adds unit tests to cover the newly introduced functionality. Change-Id: Ifdfdcd123296803a3b5e856ec5eaac49c05b7f8d Reviewed-on: http://gerrit.cloudera.org:8080/18993 Tested-by: Alexey Serbin <[email protected]> Reviewed-by: Alexey Serbin <[email protected]> --- M java/kudu-client/src/main/java/org/apache/kudu/ColumnSchema.java M java/kudu-client/src/main/java/org/apache/kudu/Schema.java M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java M java/kudu-client/src/main/java/org/apache/kudu/client/CreateTableOptions.java M java/kudu-client/src/main/java/org/apache/kudu/client/CreateTableRequest.java M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java M java/kudu-client/src/main/java/org/apache/kudu/client/KuduTable.java M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java M java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java M java/kudu-client/src/main/java/org/apache/kudu/client/Status.java M java/kudu-client/src/main/java/org/apache/kudu/client/UpdateIgnore.java A java/kudu-client/src/main/java/org/apache/kudu/client/UpsertIgnore.java M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java M java/kudu-test-utils/src/main/java/org/apache/kudu/test/ClientTestUtil.java 17 files changed, 511 insertions(+), 39 deletions(-) Approvals: Alexey Serbin: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/18993 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifdfdcd123296803a3b5e856ec5eaac49c05b7f8d Gerrit-Change-Number: 18993 Gerrit-PatchSet: 11 Gerrit-Owner: Yingchun Lai <[email protected]> Gerrit-Reviewer: Abhishek Chennaka <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Yifan Zhang <[email protected]> Gerrit-Reviewer: Yingchun Lai <[email protected]>
