You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Will Berkeley (Code Review)" <ge...@cloudera.org> on 2016/10/30 05:39:11 UTC

[kudu-CR] KUDU-861 Support changing default, storage attributes

Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

    http://gerrit.cloudera.org:8080/4310

to look at the new patch set (#7).

Change subject: KUDU-861 Support changing default, storage attributes
......................................................................

KUDU-861 Support changing default, storage attributes

This patch adds support for adding, changing, or removing column defaults
and changing the storage attributes of a column. Changes to a column are
encoded as a ColumnSchemaDelta, which can be merged with a ColumnSchema
to change it.

Recall that, internally, there are two types of default: read and write.
Through some testing, it became clear that changing the read default causes
undesirable behavior-- compactions can effectively change the value of a
column when its row is projected to the new schema, and it becomes difficult
to tell what the value of the column is at any point in time. Users most
likely want the behavior of just changing the write default value, thus only
write default values can be changed.

Changing type and nullability of a column is still unsupported (doing so
is much more complicated).

No failures in 100+ iterations of alter_table-randomized-test.

I also ran into an issue where empty RLE blocks were failing a CHECK
that I don't think was meaningful for an empty block, so I relaxed
the CHECK condition to except the empty block case.

Change-Id: I457d99ba2188ef6e439df47c0d94f2dc1a62ea6c
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M src/kudu/cfile/rle_block.h
M src/kudu/client/client-test.cc
M src/kudu/client/schema.cc
M src/kudu/client/schema.h
M src/kudu/client/table_alterer-internal.cc
M src/kudu/client/value-internal.h
M src/kudu/client/value.cc
M src/kudu/common/common.proto
M src/kudu/common/schema.cc
M src/kudu/common/schema.h
M src/kudu/common/wire_protocol.cc
M src/kudu/common/wire_protocol.h
M src/kudu/integration-tests/alter_table-randomized-test.cc
M src/kudu/integration-tests/alter_table-test.cc
M src/kudu/master/catalog_manager.cc
M src/kudu/master/master.proto
19 files changed, 876 insertions(+), 42 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/10/4310/7
-- 
To view, visit http://gerrit.cloudera.org:8080/4310
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I457d99ba2188ef6e439df47c0d94f2dc1a62ea6c
Gerrit-PatchSet: 7
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Will Berkeley <wd...@gmail.com>
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Will Berkeley <wd...@gmail.com>