[ 
https://issues.apache.org/jira/browse/HBASE-12329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14192097#comment-14192097
 ] 

Sean Busbey commented on HBASE-12329:
-------------------------------------

{quote}
bq. Should we add a third method "setFamily" that behaves like the old add?

If it's added, does it imply such an operation (add or update in one method) is 
allowed, and users should be aware of "last one wins" at that time? If so why 
do we re-implement addFamily and add modifyFamily? The existing addFamily is 
enough. Is it?
{quote}

It's API semantics. "addXXX" means to put something new in, "modifyXXX" means 
to update something already present. "setXXX" is used in other places to mean 
"add or update", knowledge of "last write wins" is already baked into the 
naming.

> Table create with duplicate column family names quietly succeeds
> ----------------------------------------------------------------
>
>                 Key: HBASE-12329
>                 URL: https://issues.apache.org/jira/browse/HBASE-12329
>             Project: HBase
>          Issue Type: Bug
>          Components: Client, shell
>            Reporter: Sean Busbey
>            Assignee: Jingcheng Du
>            Priority: Minor
>         Attachments: HBASE-12329-V2.diff, HBASE-12329-V3.diff, 
> HBASE-12329.diff
>
>
> From the mailing list
> {quote}
> I was expecting that it is forbidden, **but** this call does not throw any
> exception
> {code}
>         String[] families = {"cf", "cf"};
>         HTableDescriptor desc = new HTableDescriptor(name);
>         for (String cf : families) {
>           HColumnDescriptor coldef = new HColumnDescriptor(cf);
>           desc.addFamily(coldef);
>         }
>         try {
>             admin.createTable(desc);
>         } catch (TableExistsException e) {
>             throw new IOException("table \'" + name + "\' already exists");
>         }
> {code}
> {quote}
> And Ted's follow up replicates in the shell
> {code}
> hbase(main):001:0> create 't2', {NAME => 'f1'}, {NAME => 'f1'}
> The table got created - with 1 column family:
> hbase(main):002:0> describe 't2'
> DESCRIPTION
>                        ENABLED
>  't2', {NAME => 'f1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW',
> REPLICATION_SCOPE => '0 true
>  ', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL =>
> '2147483647', KEEP_DELETED
>  _CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE
> => 'true'}
> 1 row(s) in 0.1000 seconds
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to