diff --git a/cbt.go b/cbt.go index 28d8a3e..dade438 100755 --- a/cbt.go +++ b/cbt.go @@ -2163,10 +2163,10 @@ func parseColumnsFilter(columns string) (bigtable.Filter, error) { } func columnFilter(column string) (bigtable.Filter, error) { - splitColumn := strings.Split(column, ":") + splitColumn := strings.SplitN(column, ":", 2) if len(splitColumn) == 1 { return bigtable.ColumnFilter(splitColumn[0]), nil - } else if len(splitColumn) == 2 { + } else { if strings.HasSuffix(column, ":") { return bigtable.FamilyFilter(splitColumn[0]), nil } else if strings.HasPrefix(column, ":") { @@ -2176,8 +2176,6 @@ func columnFilter(column string) (bigtable.Filter, error) { qualifierFilter := bigtable.ColumnFilter(splitColumn[1]) return bigtable.ChainFilters(familyFilter, qualifierFilter), nil } - } else { - return nil, fmt.Errorf("bad format for column %q", column) } } diff --git a/cbt_test.go b/cbt_test.go index c5f87dd..a90cc59 100644 --- a/cbt_test.go +++ b/cbt_test.go @@ -178,12 +178,12 @@ func TestParseColumnsFilter(t *testing.T) { ), }, { - in: "familyA:columnA:cellA", - fail: true, + in: "familyA:columnA:text", + out: bigtable.ChainFilters(bigtable.FamilyFilter("familyA"), bigtable.ColumnFilter("columnA:text")), }, { - in: "familyA::columnA", - fail: true, + in: "familyA::columnA", + out: bigtable.ChainFilters(bigtable.FamilyFilter("familyA"), bigtable.ColumnFilter(":columnA")), }, }