From 5fa1ef5e10b088f815c4b6f5e9f93bbe978b3ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20N=C3=B3brega?= Date: Fri, 30 Jun 2023 17:59:40 -0300 Subject: [PATCH] fix: allow column qualifiers with colon characters --- cbt.go | 6 ++---- cbt_test.go | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) 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")), }, }