HBASE-13550 [Shell] Support unset of a list of table attributes
This commit is contained in:
parent
8a18cf3c01
commit
cd83d39fb4
|
@ -518,10 +518,19 @@ module Hbase
|
|||
# Unset table attributes
|
||||
elsif method == "table_att_unset"
|
||||
raise(ArgumentError, "NAME parameter missing for table_att_unset method") unless name
|
||||
if (htd.getValue(name) == nil)
|
||||
raise ArgumentError, "Can not find attribute: #{name}"
|
||||
if name.kind_of?(Array)
|
||||
name.each do |key|
|
||||
if (htd.getValue(key) == nil)
|
||||
raise ArgumentError, "Could not find attribute: #{key}"
|
||||
end
|
||||
htd.remove(key)
|
||||
end
|
||||
else
|
||||
if (htd.getValue(name) == nil)
|
||||
raise ArgumentError, "Could not find attribute: #{name}"
|
||||
end
|
||||
htd.remove(name)
|
||||
end
|
||||
htd.remove(name)
|
||||
@admin.modifyTable(table_name.to_java_bytes, htd)
|
||||
# Unknown method
|
||||
else
|
||||
|
|
|
@ -348,6 +348,22 @@ module Hbase
|
|||
assert_no_match(eval("/" + key + "/"), admin.describe(@test_name))
|
||||
end
|
||||
|
||||
define_test "alter should be able to remove a list of table attributes" do
|
||||
drop_test_table(@test_name)
|
||||
|
||||
key_1 = "TestAttr1"
|
||||
key_2 = "TestAttr2"
|
||||
admin.create(@test_name, { NAME => 'i'}, METADATA => { key_1 => 1, key_2 => 2 })
|
||||
|
||||
# eval() is used to convert a string to regex
|
||||
assert_match(eval("/" + key_1 + "/"), admin.describe(@test_name))
|
||||
assert_match(eval("/" + key_2 + "/"), admin.describe(@test_name))
|
||||
|
||||
admin.alter(@test_name, true, 'METHOD' => 'table_att_unset', 'NAME' => [ key_1, key_2 ])
|
||||
assert_no_match(eval("/" + key_1 + "/"), admin.describe(@test_name))
|
||||
assert_no_match(eval("/" + key_2 + "/"), admin.describe(@test_name))
|
||||
end
|
||||
|
||||
define_test "get_table should get a real table" do
|
||||
drop_test_table(@test_name)
|
||||
create_test_table(@test_name)
|
||||
|
|
Loading…
Reference in New Issue