Hello Alexey Serbin, Yifan Zhang, Kudu Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/18742
to look at the new patch set (#3).
Change subject: KUDU-3353 [schema] Add an immutable attribute on column schema
(part 1)
......................................................................
KUDU-3353 [schema] Add an immutable attribute on column schema (part 1)
The overview of design:
1. Add a column attribute to define a column as IMMUTABLE, means
the column cell value can not be updated after it's been written
during inserting the row.
2. If UPDATE or UPSERT operations are operated on immutable cells
of a present row, a new added error of Status::IsImmutable()
will be returned.
3. Use UPDATE_IGNORE and add UPSERT_IGNORE, for UPDATE and UPSERT
ops but ignore update-errors on IMMUTABLE columns. Note that
the rows are still upsert/updated but only ignore to update
the immutable cells.
Some use cases:
1. Some columns are impossible to be updated, but it may present with
different values in every input data flow. E.g. a column of
'first_login_timestamp', and present as 'login_timestamp' in data
flow.
2. Some columns are impossible to be updated, and it may present with
the same values in every input data flow. We want to reduce the
length of a column's change list. E.g. a column of 'birthday'.
This patch includes the changes on server side, proto files, and some
necessary changes because of ColumnSchema constructor's been changed.
Change-Id: I01e5a806c0e873239b49e6d0b37a7e36578b508d
---
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M src/kudu/client/client-test.cc
M src/kudu/client/scan_configuration.cc
M src/kudu/client/schema.cc
M src/kudu/codegen/codegen-test.cc
M src/kudu/common/column_predicate-test.cc
M src/kudu/common/common.proto
M src/kudu/common/generic_iterators-test.cc
M src/kudu/common/partial_row-test.cc
M src/kudu/common/partition-test.cc
M src/kudu/common/row_operations-test.cc
M src/kudu/common/row_operations.cc
M src/kudu/common/row_operations.h
M src/kudu/common/row_operations.proto
M src/kudu/common/schema-test.cc
M src/kudu/common/schema.cc
M src/kudu/common/schema.h
M src/kudu/common/wire_protocol-test.cc
M src/kudu/common/wire_protocol.cc
M src/kudu/common/wire_protocol.proto
M src/kudu/consensus/log-test.cc
M src/kudu/master/master.proto
M src/kudu/master/master_service.cc
M src/kudu/tablet/all_types-scan-correctness-test.cc
M src/kudu/tablet/cfile_set-test.cc
M src/kudu/tablet/diskrowset-test.cc
M src/kudu/tablet/local_tablet_writer.h
M src/kudu/tablet/ops/op.cc
M src/kudu/tablet/ops/op.h
M src/kudu/tablet/ops/write_op.cc
M src/kudu/tablet/row_op.cc
M src/kudu/tablet/tablet-decoder-eval-test.cc
M src/kudu/tablet/tablet-test-base.h
M src/kudu/tablet/tablet-test-util.h
M src/kudu/tablet/tablet-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
M src/kudu/tablet/tablet_bootstrap.cc
M src/kudu/tablet/tablet_metrics.cc
M src/kudu/tablet/tablet_metrics.h
M src/kudu/tablet/tablet_random_access-test.cc
M src/kudu/tablet/txn_participant-test.cc
M src/kudu/tools/kudu-tool-test.cc
M src/kudu/tserver/tablet_server_authorization-test.cc
M src/kudu/tserver/tserver.proto
M src/kudu/util/status.cc
M src/kudu/util/status.h
47 files changed, 399 insertions(+), 66 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/42/18742/3
--
To view, visit http://gerrit.cloudera.org:8080/18742
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I01e5a806c0e873239b49e6d0b37a7e36578b508d
Gerrit-Change-Number: 18742
Gerrit-PatchSet: 3
Gerrit-Owner: Yingchun Lai <[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]>