[
https://issues.apache.org/jira/browse/HBASE-12329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14182606#comment-14182606
]
Jingcheng Du commented on HBASE-12329:
--------------------------------------
Hi [~busbey], I'm thinking how to differentiate the operations createTable and
modifyTable.
In the modifyTable, users fetch the htd from the admin.getTableDescriptor which
has all the existing hcds, in this case, it's allowed to add a new column to
replace the old one by using htd.addFamily whereas in createTable it's not
allowed. They're contrary, we need to know the HBaseAdmin ops(create or modify)
in the HCD which is not reasonable.
I think this JIRA won't be a problem, users should be aware that if they add
duplicated columns into the htd, the latter one will replace the former one.
What's your opinion one this? Please advise. Thanks.
> 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
>
> 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)