I quite wanted to use a hyphen in the name (so that it could be a direct mapping to an HTTP header field name), but hbase wouldn't let me. Not massively onerous - it's easy to translate; it's just a slight awkwardness.

Toby

On 4 Feb 2009, at 17:49, stack wrote:

Yeah, the architecture document is starting to showing its age. Needs a nip
and tuck.

No big reasons for family name being 'text'/'printable'. Is it an onerous
restriction?

St.Ack



On Wed, Feb 4, 2009 at 8:09 AM, Toby White <[email protected]> wrote:

From the HBase documentation (
http://wiki.apache.org/hadoop/Hbase/HbaseArchitecture)

'A column name has the form "<family>:<label>" where <family> and <label>
can be arbitrary byte arrays'

yet in HColumnDescriptor.java:

  for (int i = 0; i < (b.length - 1); i++) {
if (Character.isLetterOrDigit(b[i]) || b[i] == '_' || b[i] == '.') {
      continue;
    }
    throw new IllegalArgumentException("Illegal character <" + b[i] +
">. Family names can only contain 'word characters' and must end"
+
      "with a colon: " + Bytes.toString(b));
  }

Presumably the code is the authoritative source here; but why is there such
a restriction on family names?

Toby


Reply via email to