You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Demai Ni (JIRA)" <ji...@apache.org> on 2013/06/21 04:05:19 UTC
[jira] [Updated] (HBASE-8780) a column Family can have VERSIONS
less than zero
[ https://issues.apache.org/jira/browse/HBASE-8780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Demai Ni updated HBASE-8780:
----------------------------
Attachment: HBASE-8780-test.txt
HBASE-8780-0.94.8-v0.patch
the fix moves the error checking from constructor to the setters with minor twist.
Fix is built and tested against 94.8. Thanks for reviewing this.
> a column Family can have VERSIONS less than zero
> -------------------------------------------------
>
> Key: HBASE-8780
> URL: https://issues.apache.org/jira/browse/HBASE-8780
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.94.8
> Reporter: Demai Ni
> Priority: Trivial
> Attachments: HBASE-8780-0.94.8-v0.patch, HBASE-8780-test.txt
>
>
> User can create/alter a columnfam and set its VERSION(aka maxVERSIONS) to a negative or zero value. Although there is a checking in HColumnDesciptor#construtor, hbase shell command will invoke the setter(setMaxVersions and setMinVersions) directly, hence by pass the checking. For example:
> {code:title=set VERSIONS = -1}
> hbase(main):016:0> create 't5_dn',{NAME=>'cf1',VERSIONS=>-1}
> 0 row(s) in 1.0420 seconds
> hbase(main):017:0> put 't5_dn','row1','cf1:q1','row1cf1_v1'
> 0 row(s) in 0.0700 seconds
> hbase(main):018:0> scan 't5_dn'
> ROW COLUMN+CELL
> 0 row(s) in 0.0090 seconds
> hbase(main):019:0> describe 't5_dn'
> DESCRIPTION ENABLED
> 't5_dn', {NAME => 'cf1', REPLICATION_SCOPE => '0', true
> KEEP_DELETED_CELLS => 'false', COMPRESSION => 'NONE
> ', ENCODE_ON_DISK => 'true', BLOCKCACHE => 'true',
> MIN_VERSIONS => '0', DATA_BLOCK_ENCODING => 'NONE',
> IN_MEMORY => 'false', BLOOMFILTER => 'NONE', TTL =
> > '2147483647', VERSIONS => '-1', BLOCKSIZE => '655
> 36'}
> 1 row(s) in 0.0410 seconds
> {code}
> above example shows VERSIONS => '-1', and put/scan doesn't keep the data
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira