Treate BloomFilter Properly in HBase Shell
-------------------------------------------
Key: HBASE-3086
URL: https://issues.apache.org/jira/browse/HBASE-3086
Project: HBase
Issue Type: Bug
Components: shell
Affects Versions: 0.89.20100621
Reporter: Karthick Sankarachary
Priority: Minor
The HBase shell doesn't treat the value of the BLOOMFILTER in the column
descriptor as a string. Instead, it wrongly interprets it to be a boolean,
which may have the case earlier. As a result, we cannot create tables with
bloom filter enabled, as the following example illustrates:
hbase(main):003:0> create 't1', { NAME => 'f1', BLOOMFILTER => 'ROWCOL' }
ERROR: no constructor with arguments matching [class
org.jruby.java.proxies.ArrayJavaProxy, class org.jruby.RubyFixnum, class
org.jruby.RubyString, class org.jruby.RubyBoolean, class org.jruby.RubyBoolean,
class org.jruby.RubyFixnum, class org.jruby.RubyFixnum, class
org.jruby.RubyBoolean, class org.jruby.RubyFixnum] on object
#<Java::OrgApacheHadoopHbase::HColumnDescriptor:0x4e695527>
To fix this issue, we should change the "hcd" method in the hbase/admin.rb
class, so that it doesn't try to treat the bloom filter as a boolean (see diff
below and patch attached).
- arg.include?(HColumnDescriptor::BLOOMFILTER)?
JBoolean.valueOf(arg[HColumnDescriptor::BLOOMFILTER]):
HColumnDescriptor::DEFAULT_BLOOMFILTER,
+ arg.include?(HColumnDescriptor::BLOOMFILTER)?
arg[HColumnDescriptor::BLOOMFILTER]: HColumnDescriptor::DEFAULT_BLOOMFILTER,
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.