From 79d25b683656f91c5b94bc10be37fecd17699674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= Date: Sun, 13 Oct 2024 04:55:34 +0000 Subject: [PATCH 1/2] fix: infer Nullable/Array/LowCardinality with reflection helps re #152 couple fixes needed to get Array(Nullable(...)) & Nullable(DateTime64(...)) cases to work --- proto/cmd/ch-gen-col/infer.go.tmpl | 4 -- proto/col_auto.go | 59 ++++++++++++----- proto/col_auto_gen.go | 100 ----------------------------- proto/col_auto_test.go | 2 + proto/col_datetime64.go | 4 ++ proto/col_nullable.go | 6 ++ 6 files changed, 55 insertions(+), 120 deletions(-) diff --git a/proto/cmd/ch-gen-col/infer.go.tmpl b/proto/cmd/ch-gen-col/infer.go.tmpl index 01c46ed8..1ffbd85b 100644 --- a/proto/cmd/ch-gen-col/infer.go.tmpl +++ b/proto/cmd/ch-gen-col/infer.go.tmpl @@ -6,10 +6,6 @@ package proto func inferGenerated(t ColumnType) Column { switch t { {{- range . }} - case ColumnTypeArray.Sub({{ .ColumnType }}): - return new({{ .Type }}).Array() - case ColumnTypeNullable.Sub({{ .ColumnType }}): - return new({{ .Type }}).Nullable() case {{ .ColumnType }}: return new({{ .Type }}) {{- end }} diff --git a/proto/col_auto.go b/proto/col_auto.go index c72615da..d5f614de 100644 --- a/proto/col_auto.go +++ b/proto/col_auto.go @@ -1,6 +1,7 @@ package proto import ( + "reflect" "strconv" "strings" @@ -37,20 +38,8 @@ func (c *ColAuto) Infer(t ColumnType) error { switch t { case ColumnTypeNothing: c.Data = new(ColNothing) - case ColumnTypeNullable.Sub(ColumnTypeNothing): - c.Data = new(ColNothing).Nullable() - case ColumnTypeArray.Sub(ColumnTypeNothing): - c.Data = new(ColNothing).Array() case ColumnTypeString: c.Data = new(ColStr) - case ColumnTypeArray.Sub(ColumnTypeString): - c.Data = new(ColStr).Array() - case ColumnTypeNullable.Sub(ColumnTypeString): - c.Data = new(ColStr).Nullable() - case ColumnTypeLowCardinality.Sub(ColumnTypeString): - c.Data = new(ColStr).LowCardinality() - case ColumnTypeArray.Sub(ColumnTypeLowCardinality.Sub(ColumnTypeString)): - c.Data = new(ColStr).LowCardinality().Array() case ColumnTypeBool: c.Data = new(ColBool) case ColumnTypeDateTime: @@ -61,12 +50,50 @@ func (c *ColAuto) Infer(t ColumnType) error { c.Data = NewMap[string, string](new(ColStr), new(ColStr)) case ColumnTypeUUID: c.Data = new(ColUUID) - case ColumnTypeArray.Sub(ColumnTypeUUID): - c.Data = new(ColUUID).Array() - case ColumnTypeNullable.Sub(ColumnTypeUUID): - c.Data = new(ColUUID).Nullable() default: switch t.Base() { + case ColumnTypeArray: + inner := new(ColAuto) + if err := inner.Infer(t.Elem()); err != nil { + return errors.Wrap(err, "array") + } + innerValue := reflect.ValueOf(inner.Data) + arrayMethod := innerValue.MethodByName("Array") + if arrayMethod.IsValid() && arrayMethod.Type().NumOut() == 1 { + if col, ok := arrayMethod.Call(nil)[0].Interface().(Column); ok { + c.Data = col + c.DataType = t + return nil + } + } + case ColumnTypeNullable: + inner := new(ColAuto) + if err := inner.Infer(t.Elem()); err != nil { + return errors.Wrap(err, "nullable") + } + innerValue := reflect.ValueOf(inner.Data) + nullableMethod := innerValue.MethodByName("Nullable") + if nullableMethod.IsValid() && nullableMethod.Type().NumOut() == 1 { + if col, ok := nullableMethod.Call(nil)[0].Interface().(Column); ok { + c.Data = col + c.DataType = t + return nil + } + } + case ColumnTypeLowCardinality: + inner := new(ColAuto) + if err := inner.Infer(t.Elem()); err != nil { + return errors.Wrap(err, "low cardinality") + } + innerValue := reflect.ValueOf(inner.Data) + lowCardinalityMethod := innerValue.MethodByName("LowCardinality") + if lowCardinalityMethod.IsValid() && lowCardinalityMethod.Type().NumOut() == 1 { + if col, ok := lowCardinalityMethod.Call(nil)[0].Interface().(Column); ok { + c.Data = col + c.DataType = t + return nil + } + } case ColumnTypeDateTime: v := new(ColDateTime) if err := v.Infer(t); err != nil { diff --git a/proto/col_auto_gen.go b/proto/col_auto_gen.go index 70928c65..b297d927 100644 --- a/proto/col_auto_gen.go +++ b/proto/col_auto_gen.go @@ -4,154 +4,54 @@ package proto func inferGenerated(t ColumnType) Column { switch t { - case ColumnTypeArray.Sub(ColumnTypeFloat32): - return new(ColFloat32).Array() - case ColumnTypeNullable.Sub(ColumnTypeFloat32): - return new(ColFloat32).Nullable() case ColumnTypeFloat32: return new(ColFloat32) - case ColumnTypeArray.Sub(ColumnTypeFloat64): - return new(ColFloat64).Array() - case ColumnTypeNullable.Sub(ColumnTypeFloat64): - return new(ColFloat64).Nullable() case ColumnTypeFloat64: return new(ColFloat64) - case ColumnTypeArray.Sub(ColumnTypeIPv4): - return new(ColIPv4).Array() - case ColumnTypeNullable.Sub(ColumnTypeIPv4): - return new(ColIPv4).Nullable() case ColumnTypeIPv4: return new(ColIPv4) - case ColumnTypeArray.Sub(ColumnTypeIPv6): - return new(ColIPv6).Array() - case ColumnTypeNullable.Sub(ColumnTypeIPv6): - return new(ColIPv6).Nullable() case ColumnTypeIPv6: return new(ColIPv6) - case ColumnTypeArray.Sub(ColumnTypeDate): - return new(ColDate).Array() - case ColumnTypeNullable.Sub(ColumnTypeDate): - return new(ColDate).Nullable() case ColumnTypeDate: return new(ColDate) - case ColumnTypeArray.Sub(ColumnTypeDate32): - return new(ColDate32).Array() - case ColumnTypeNullable.Sub(ColumnTypeDate32): - return new(ColDate32).Nullable() case ColumnTypeDate32: return new(ColDate32) - case ColumnTypeArray.Sub(ColumnTypeInt8): - return new(ColInt8).Array() - case ColumnTypeNullable.Sub(ColumnTypeInt8): - return new(ColInt8).Nullable() case ColumnTypeInt8: return new(ColInt8) - case ColumnTypeArray.Sub(ColumnTypeUInt8): - return new(ColUInt8).Array() - case ColumnTypeNullable.Sub(ColumnTypeUInt8): - return new(ColUInt8).Nullable() case ColumnTypeUInt8: return new(ColUInt8) - case ColumnTypeArray.Sub(ColumnTypeInt16): - return new(ColInt16).Array() - case ColumnTypeNullable.Sub(ColumnTypeInt16): - return new(ColInt16).Nullable() case ColumnTypeInt16: return new(ColInt16) - case ColumnTypeArray.Sub(ColumnTypeUInt16): - return new(ColUInt16).Array() - case ColumnTypeNullable.Sub(ColumnTypeUInt16): - return new(ColUInt16).Nullable() case ColumnTypeUInt16: return new(ColUInt16) - case ColumnTypeArray.Sub(ColumnTypeInt32): - return new(ColInt32).Array() - case ColumnTypeNullable.Sub(ColumnTypeInt32): - return new(ColInt32).Nullable() case ColumnTypeInt32: return new(ColInt32) - case ColumnTypeArray.Sub(ColumnTypeUInt32): - return new(ColUInt32).Array() - case ColumnTypeNullable.Sub(ColumnTypeUInt32): - return new(ColUInt32).Nullable() case ColumnTypeUInt32: return new(ColUInt32) - case ColumnTypeArray.Sub(ColumnTypeInt64): - return new(ColInt64).Array() - case ColumnTypeNullable.Sub(ColumnTypeInt64): - return new(ColInt64).Nullable() case ColumnTypeInt64: return new(ColInt64) - case ColumnTypeArray.Sub(ColumnTypeUInt64): - return new(ColUInt64).Array() - case ColumnTypeNullable.Sub(ColumnTypeUInt64): - return new(ColUInt64).Nullable() case ColumnTypeUInt64: return new(ColUInt64) - case ColumnTypeArray.Sub(ColumnTypeInt128): - return new(ColInt128).Array() - case ColumnTypeNullable.Sub(ColumnTypeInt128): - return new(ColInt128).Nullable() case ColumnTypeInt128: return new(ColInt128) - case ColumnTypeArray.Sub(ColumnTypeUInt128): - return new(ColUInt128).Array() - case ColumnTypeNullable.Sub(ColumnTypeUInt128): - return new(ColUInt128).Nullable() case ColumnTypeUInt128: return new(ColUInt128) - case ColumnTypeArray.Sub(ColumnTypeInt256): - return new(ColInt256).Array() - case ColumnTypeNullable.Sub(ColumnTypeInt256): - return new(ColInt256).Nullable() case ColumnTypeInt256: return new(ColInt256) - case ColumnTypeArray.Sub(ColumnTypeUInt256): - return new(ColUInt256).Array() - case ColumnTypeNullable.Sub(ColumnTypeUInt256): - return new(ColUInt256).Nullable() case ColumnTypeUInt256: return new(ColUInt256) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("8")): - return new(ColFixedStr8).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("8")): - return new(ColFixedStr8).Nullable() case ColumnTypeFixedString.With("8"): return new(ColFixedStr8) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("16")): - return new(ColFixedStr16).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("16")): - return new(ColFixedStr16).Nullable() case ColumnTypeFixedString.With("16"): return new(ColFixedStr16) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("32")): - return new(ColFixedStr32).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("32")): - return new(ColFixedStr32).Nullable() case ColumnTypeFixedString.With("32"): return new(ColFixedStr32) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("64")): - return new(ColFixedStr64).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("64")): - return new(ColFixedStr64).Nullable() case ColumnTypeFixedString.With("64"): return new(ColFixedStr64) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("128")): - return new(ColFixedStr128).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("128")): - return new(ColFixedStr128).Nullable() case ColumnTypeFixedString.With("128"): return new(ColFixedStr128) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("256")): - return new(ColFixedStr256).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("256")): - return new(ColFixedStr256).Nullable() case ColumnTypeFixedString.With("256"): return new(ColFixedStr256) - case ColumnTypeArray.Sub(ColumnTypeFixedString.With("512")): - return new(ColFixedStr512).Array() - case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("512")): - return new(ColFixedStr512).Nullable() case ColumnTypeFixedString.With("512"): return new(ColFixedStr512) default: diff --git a/proto/col_auto_test.go b/proto/col_auto_test.go index 5c0b3f4b..f935d8b3 100644 --- a/proto/col_auto_test.go +++ b/proto/col_auto_test.go @@ -57,6 +57,8 @@ func TestColAuto_Infer(t *testing.T) { "Decimal64(2)", "Decimal128(3)", "Decimal256(4)", + "Array(Nullable(Int8))", + "Nullable(DateTime64(3))", } { r := AutoResult("foo") require.NoError(t, r.Data.(Inferable).Infer(columnType)) diff --git a/proto/col_datetime64.go b/proto/col_datetime64.go index 500d88b3..12506e40 100644 --- a/proto/col_datetime64.go +++ b/proto/col_datetime64.go @@ -125,6 +125,10 @@ func (c ColDateTime64) Raw() *ColDateTime64Raw { return &ColDateTime64Raw{ColDateTime64: c} } +func (c *ColDateTime64) Nullable() *ColNullable[time.Time] { + return &ColNullable[time.Time]{Values: c} +} + func (c *ColDateTime64) Array() *ColArr[time.Time] { return &ColArr[time.Time]{Data: c} } diff --git a/proto/col_nullable.go b/proto/col_nullable.go index dfac8fa2..fd3615d2 100644 --- a/proto/col_nullable.go +++ b/proto/col_nullable.go @@ -117,6 +117,12 @@ func (c ColNullable[T]) Row(i int) Nullable[T] { } } +func (c *ColNullable[T]) Array() *ColArr[Nullable[T]] { + return &ColArr[Nullable[T]]{ + Data: c, + } +} + func (c *ColNullable[T]) Reset() { c.Nulls.Reset() c.Values.Reset() From 7719a449ca90503c8f31ffab71f71ef66f7c4d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= Date: Sun, 13 Oct 2024 05:23:14 +0000 Subject: [PATCH 2/2] fix: typos in comments --- proto/cmd/ch-gen-col/main.go.tmpl | 2 +- proto/col_date.go | 2 +- proto/col_date32.go | 2 +- proto/col_datetime.go | 2 +- proto/col_decimal128_gen.go | 2 +- proto/col_decimal256_gen.go | 2 +- proto/col_decimal32_gen.go | 2 +- proto/col_decimal64_gen.go | 2 +- proto/col_enum16_gen.go | 2 +- proto/col_enum8_gen.go | 2 +- proto/col_fixedstr128_gen.go | 2 +- proto/col_fixedstr16_gen.go | 2 +- proto/col_fixedstr256_gen.go | 2 +- proto/col_fixedstr32_gen.go | 2 +- proto/col_fixedstr512_gen.go | 2 +- proto/col_fixedstr64_gen.go | 2 +- proto/col_fixedstr8_gen.go | 2 +- proto/col_float32_gen.go | 2 +- proto/col_float64_gen.go | 2 +- proto/col_int128_gen.go | 2 +- proto/col_int16_gen.go | 2 +- proto/col_int256_gen.go | 2 +- proto/col_int32_gen.go | 2 +- proto/col_int64_gen.go | 2 +- proto/col_int8_gen.go | 2 +- proto/col_ipv4_gen.go | 2 +- proto/col_ipv6_gen.go | 2 +- proto/col_uint128_gen.go | 2 +- proto/col_uint16_gen.go | 2 +- proto/col_uint256_gen.go | 2 +- proto/col_uint32_gen.go | 2 +- proto/col_uint64_gen.go | 2 +- proto/col_uint8_gen.go | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/proto/cmd/ch-gen-col/main.go.tmpl b/proto/cmd/ch-gen-col/main.go.tmpl index 574e5d35..f9ca4d26 100644 --- a/proto/cmd/ch-gen-col/main.go.tmpl +++ b/proto/cmd/ch-gen-col/main.go.tmpl @@ -44,7 +44,7 @@ func (c *{{ .Type }}) AppendArr(vs []{{ .ElemType }}) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for {{ .Name }} . +// LowCardinality returns LowCardinality for {{ .Name }}. func (c *{{ .Type }}) LowCardinality() *ColLowCardinality[{{ .ElemType }}] { return &ColLowCardinality[{{ .ElemType }}]{ index: c, diff --git a/proto/col_date.go b/proto/col_date.go index 5bf75b3b..4483739a 100644 --- a/proto/col_date.go +++ b/proto/col_date.go @@ -20,7 +20,7 @@ func (c ColDate) Row(i int) time.Time { return c[i].Time() } -// LowCardinality returns LowCardinality for Enum8 . +// LowCardinality returns LowCardinality for Enum8. func (c *ColDate) LowCardinality() *ColLowCardinality[time.Time] { return &ColLowCardinality[time.Time]{ index: c, diff --git a/proto/col_date32.go b/proto/col_date32.go index 38f1a916..8daa68b7 100644 --- a/proto/col_date32.go +++ b/proto/col_date32.go @@ -20,7 +20,7 @@ func (c ColDate32) Row(i int) time.Time { return c[i].Time() } -// LowCardinality returns LowCardinality for Enum8 . +// LowCardinality returns LowCardinality for Enum8. func (c *ColDate32) LowCardinality() *ColLowCardinality[time.Time] { return &ColLowCardinality[time.Time]{ index: c, diff --git a/proto/col_datetime.go b/proto/col_datetime.go index 4243f2ba..7ec0e7fb 100644 --- a/proto/col_datetime.go +++ b/proto/col_datetime.go @@ -75,7 +75,7 @@ func (c *ColDateTime) AppendArr(vs []time.Time) { c.Data = append(c.Data, dates...) } -// LowCardinality returns LowCardinality for Enum8 . +// LowCardinality returns LowCardinality for Enum8. func (c *ColDateTime) LowCardinality() *ColLowCardinality[time.Time] { return &ColLowCardinality[time.Time]{ index: c, diff --git a/proto/col_decimal128_gen.go b/proto/col_decimal128_gen.go index 18811acd..775acbbb 100644 --- a/proto/col_decimal128_gen.go +++ b/proto/col_decimal128_gen.go @@ -42,7 +42,7 @@ func (c *ColDecimal128) AppendArr(vs []Decimal128) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Decimal128 . +// LowCardinality returns LowCardinality for Decimal128. func (c *ColDecimal128) LowCardinality() *ColLowCardinality[Decimal128] { return &ColLowCardinality[Decimal128]{ index: c, diff --git a/proto/col_decimal256_gen.go b/proto/col_decimal256_gen.go index ad96b27a..7bb2ffaa 100644 --- a/proto/col_decimal256_gen.go +++ b/proto/col_decimal256_gen.go @@ -42,7 +42,7 @@ func (c *ColDecimal256) AppendArr(vs []Decimal256) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Decimal256 . +// LowCardinality returns LowCardinality for Decimal256. func (c *ColDecimal256) LowCardinality() *ColLowCardinality[Decimal256] { return &ColLowCardinality[Decimal256]{ index: c, diff --git a/proto/col_decimal32_gen.go b/proto/col_decimal32_gen.go index 2c4f4eaf..e26ec6f5 100644 --- a/proto/col_decimal32_gen.go +++ b/proto/col_decimal32_gen.go @@ -42,7 +42,7 @@ func (c *ColDecimal32) AppendArr(vs []Decimal32) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Decimal32 . +// LowCardinality returns LowCardinality for Decimal32. func (c *ColDecimal32) LowCardinality() *ColLowCardinality[Decimal32] { return &ColLowCardinality[Decimal32]{ index: c, diff --git a/proto/col_decimal64_gen.go b/proto/col_decimal64_gen.go index c37ffcd3..bfb06b93 100644 --- a/proto/col_decimal64_gen.go +++ b/proto/col_decimal64_gen.go @@ -42,7 +42,7 @@ func (c *ColDecimal64) AppendArr(vs []Decimal64) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Decimal64 . +// LowCardinality returns LowCardinality for Decimal64. func (c *ColDecimal64) LowCardinality() *ColLowCardinality[Decimal64] { return &ColLowCardinality[Decimal64]{ index: c, diff --git a/proto/col_enum16_gen.go b/proto/col_enum16_gen.go index 3f99c642..406e2323 100644 --- a/proto/col_enum16_gen.go +++ b/proto/col_enum16_gen.go @@ -42,7 +42,7 @@ func (c *ColEnum16) AppendArr(vs []Enum16) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Enum16 . +// LowCardinality returns LowCardinality for Enum16. func (c *ColEnum16) LowCardinality() *ColLowCardinality[Enum16] { return &ColLowCardinality[Enum16]{ index: c, diff --git a/proto/col_enum8_gen.go b/proto/col_enum8_gen.go index a063eaf8..c9c3e438 100644 --- a/proto/col_enum8_gen.go +++ b/proto/col_enum8_gen.go @@ -42,7 +42,7 @@ func (c *ColEnum8) AppendArr(vs []Enum8) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Enum8 . +// LowCardinality returns LowCardinality for Enum8. func (c *ColEnum8) LowCardinality() *ColLowCardinality[Enum8] { return &ColLowCardinality[Enum8]{ index: c, diff --git a/proto/col_fixedstr128_gen.go b/proto/col_fixedstr128_gen.go index cb769537..130b7be6 100644 --- a/proto/col_fixedstr128_gen.go +++ b/proto/col_fixedstr128_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr128) AppendArr(vs [][128]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr128 . +// LowCardinality returns LowCardinality for FixedStr128. func (c *ColFixedStr128) LowCardinality() *ColLowCardinality[[128]byte] { return &ColLowCardinality[[128]byte]{ index: c, diff --git a/proto/col_fixedstr16_gen.go b/proto/col_fixedstr16_gen.go index adfc2de1..765a4182 100644 --- a/proto/col_fixedstr16_gen.go +++ b/proto/col_fixedstr16_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr16) AppendArr(vs [][16]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr16 . +// LowCardinality returns LowCardinality for FixedStr16. func (c *ColFixedStr16) LowCardinality() *ColLowCardinality[[16]byte] { return &ColLowCardinality[[16]byte]{ index: c, diff --git a/proto/col_fixedstr256_gen.go b/proto/col_fixedstr256_gen.go index 1e2d9559..da652618 100644 --- a/proto/col_fixedstr256_gen.go +++ b/proto/col_fixedstr256_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr256) AppendArr(vs [][256]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr256 . +// LowCardinality returns LowCardinality for FixedStr256. func (c *ColFixedStr256) LowCardinality() *ColLowCardinality[[256]byte] { return &ColLowCardinality[[256]byte]{ index: c, diff --git a/proto/col_fixedstr32_gen.go b/proto/col_fixedstr32_gen.go index 90adba9e..052bae3a 100644 --- a/proto/col_fixedstr32_gen.go +++ b/proto/col_fixedstr32_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr32) AppendArr(vs [][32]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr32 . +// LowCardinality returns LowCardinality for FixedStr32. func (c *ColFixedStr32) LowCardinality() *ColLowCardinality[[32]byte] { return &ColLowCardinality[[32]byte]{ index: c, diff --git a/proto/col_fixedstr512_gen.go b/proto/col_fixedstr512_gen.go index 09837fa8..529ba31f 100644 --- a/proto/col_fixedstr512_gen.go +++ b/proto/col_fixedstr512_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr512) AppendArr(vs [][512]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr512 . +// LowCardinality returns LowCardinality for FixedStr512. func (c *ColFixedStr512) LowCardinality() *ColLowCardinality[[512]byte] { return &ColLowCardinality[[512]byte]{ index: c, diff --git a/proto/col_fixedstr64_gen.go b/proto/col_fixedstr64_gen.go index 38849ccd..ad317153 100644 --- a/proto/col_fixedstr64_gen.go +++ b/proto/col_fixedstr64_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr64) AppendArr(vs [][64]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr64 . +// LowCardinality returns LowCardinality for FixedStr64. func (c *ColFixedStr64) LowCardinality() *ColLowCardinality[[64]byte] { return &ColLowCardinality[[64]byte]{ index: c, diff --git a/proto/col_fixedstr8_gen.go b/proto/col_fixedstr8_gen.go index a58723ee..a233df76 100644 --- a/proto/col_fixedstr8_gen.go +++ b/proto/col_fixedstr8_gen.go @@ -42,7 +42,7 @@ func (c *ColFixedStr8) AppendArr(vs [][8]byte) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for FixedStr8 . +// LowCardinality returns LowCardinality for FixedStr8. func (c *ColFixedStr8) LowCardinality() *ColLowCardinality[[8]byte] { return &ColLowCardinality[[8]byte]{ index: c, diff --git a/proto/col_float32_gen.go b/proto/col_float32_gen.go index 7031f111..01a35f30 100644 --- a/proto/col_float32_gen.go +++ b/proto/col_float32_gen.go @@ -42,7 +42,7 @@ func (c *ColFloat32) AppendArr(vs []float32) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Float32 . +// LowCardinality returns LowCardinality for Float32. func (c *ColFloat32) LowCardinality() *ColLowCardinality[float32] { return &ColLowCardinality[float32]{ index: c, diff --git a/proto/col_float64_gen.go b/proto/col_float64_gen.go index c210eb8d..4df408c0 100644 --- a/proto/col_float64_gen.go +++ b/proto/col_float64_gen.go @@ -42,7 +42,7 @@ func (c *ColFloat64) AppendArr(vs []float64) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Float64 . +// LowCardinality returns LowCardinality for Float64. func (c *ColFloat64) LowCardinality() *ColLowCardinality[float64] { return &ColLowCardinality[float64]{ index: c, diff --git a/proto/col_int128_gen.go b/proto/col_int128_gen.go index 5e982c4f..3ff6e76f 100644 --- a/proto/col_int128_gen.go +++ b/proto/col_int128_gen.go @@ -42,7 +42,7 @@ func (c *ColInt128) AppendArr(vs []Int128) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Int128 . +// LowCardinality returns LowCardinality for Int128. func (c *ColInt128) LowCardinality() *ColLowCardinality[Int128] { return &ColLowCardinality[Int128]{ index: c, diff --git a/proto/col_int16_gen.go b/proto/col_int16_gen.go index 212801d9..d2d0795c 100644 --- a/proto/col_int16_gen.go +++ b/proto/col_int16_gen.go @@ -42,7 +42,7 @@ func (c *ColInt16) AppendArr(vs []int16) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Int16 . +// LowCardinality returns LowCardinality for Int16. func (c *ColInt16) LowCardinality() *ColLowCardinality[int16] { return &ColLowCardinality[int16]{ index: c, diff --git a/proto/col_int256_gen.go b/proto/col_int256_gen.go index 5d7454b5..05c5073f 100644 --- a/proto/col_int256_gen.go +++ b/proto/col_int256_gen.go @@ -42,7 +42,7 @@ func (c *ColInt256) AppendArr(vs []Int256) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Int256 . +// LowCardinality returns LowCardinality for Int256. func (c *ColInt256) LowCardinality() *ColLowCardinality[Int256] { return &ColLowCardinality[Int256]{ index: c, diff --git a/proto/col_int32_gen.go b/proto/col_int32_gen.go index 46b09585..63d4cddc 100644 --- a/proto/col_int32_gen.go +++ b/proto/col_int32_gen.go @@ -42,7 +42,7 @@ func (c *ColInt32) AppendArr(vs []int32) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Int32 . +// LowCardinality returns LowCardinality for Int32. func (c *ColInt32) LowCardinality() *ColLowCardinality[int32] { return &ColLowCardinality[int32]{ index: c, diff --git a/proto/col_int64_gen.go b/proto/col_int64_gen.go index 4c8875c1..01061c0c 100644 --- a/proto/col_int64_gen.go +++ b/proto/col_int64_gen.go @@ -42,7 +42,7 @@ func (c *ColInt64) AppendArr(vs []int64) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Int64 . +// LowCardinality returns LowCardinality for Int64. func (c *ColInt64) LowCardinality() *ColLowCardinality[int64] { return &ColLowCardinality[int64]{ index: c, diff --git a/proto/col_int8_gen.go b/proto/col_int8_gen.go index 98a71a28..32f30039 100644 --- a/proto/col_int8_gen.go +++ b/proto/col_int8_gen.go @@ -42,7 +42,7 @@ func (c *ColInt8) AppendArr(vs []int8) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for Int8 . +// LowCardinality returns LowCardinality for Int8. func (c *ColInt8) LowCardinality() *ColLowCardinality[int8] { return &ColLowCardinality[int8]{ index: c, diff --git a/proto/col_ipv4_gen.go b/proto/col_ipv4_gen.go index 4c7a0bc9..7559e79c 100644 --- a/proto/col_ipv4_gen.go +++ b/proto/col_ipv4_gen.go @@ -42,7 +42,7 @@ func (c *ColIPv4) AppendArr(vs []IPv4) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for IPv4 . +// LowCardinality returns LowCardinality for IPv4. func (c *ColIPv4) LowCardinality() *ColLowCardinality[IPv4] { return &ColLowCardinality[IPv4]{ index: c, diff --git a/proto/col_ipv6_gen.go b/proto/col_ipv6_gen.go index 5907bd71..cff4ee95 100644 --- a/proto/col_ipv6_gen.go +++ b/proto/col_ipv6_gen.go @@ -42,7 +42,7 @@ func (c *ColIPv6) AppendArr(vs []IPv6) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for IPv6 . +// LowCardinality returns LowCardinality for IPv6. func (c *ColIPv6) LowCardinality() *ColLowCardinality[IPv6] { return &ColLowCardinality[IPv6]{ index: c, diff --git a/proto/col_uint128_gen.go b/proto/col_uint128_gen.go index e34f07e9..58b83a34 100644 --- a/proto/col_uint128_gen.go +++ b/proto/col_uint128_gen.go @@ -42,7 +42,7 @@ func (c *ColUInt128) AppendArr(vs []UInt128) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for UInt128 . +// LowCardinality returns LowCardinality for UInt128. func (c *ColUInt128) LowCardinality() *ColLowCardinality[UInt128] { return &ColLowCardinality[UInt128]{ index: c, diff --git a/proto/col_uint16_gen.go b/proto/col_uint16_gen.go index 7bc8ba63..4d41de4a 100644 --- a/proto/col_uint16_gen.go +++ b/proto/col_uint16_gen.go @@ -42,7 +42,7 @@ func (c *ColUInt16) AppendArr(vs []uint16) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for UInt16 . +// LowCardinality returns LowCardinality for UInt16. func (c *ColUInt16) LowCardinality() *ColLowCardinality[uint16] { return &ColLowCardinality[uint16]{ index: c, diff --git a/proto/col_uint256_gen.go b/proto/col_uint256_gen.go index b68a119e..0c7d9122 100644 --- a/proto/col_uint256_gen.go +++ b/proto/col_uint256_gen.go @@ -42,7 +42,7 @@ func (c *ColUInt256) AppendArr(vs []UInt256) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for UInt256 . +// LowCardinality returns LowCardinality for UInt256. func (c *ColUInt256) LowCardinality() *ColLowCardinality[UInt256] { return &ColLowCardinality[UInt256]{ index: c, diff --git a/proto/col_uint32_gen.go b/proto/col_uint32_gen.go index 41abca5b..4f205d22 100644 --- a/proto/col_uint32_gen.go +++ b/proto/col_uint32_gen.go @@ -42,7 +42,7 @@ func (c *ColUInt32) AppendArr(vs []uint32) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for UInt32 . +// LowCardinality returns LowCardinality for UInt32. func (c *ColUInt32) LowCardinality() *ColLowCardinality[uint32] { return &ColLowCardinality[uint32]{ index: c, diff --git a/proto/col_uint64_gen.go b/proto/col_uint64_gen.go index 4521cd45..f3471d18 100644 --- a/proto/col_uint64_gen.go +++ b/proto/col_uint64_gen.go @@ -42,7 +42,7 @@ func (c *ColUInt64) AppendArr(vs []uint64) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for UInt64 . +// LowCardinality returns LowCardinality for UInt64. func (c *ColUInt64) LowCardinality() *ColLowCardinality[uint64] { return &ColLowCardinality[uint64]{ index: c, diff --git a/proto/col_uint8_gen.go b/proto/col_uint8_gen.go index 02c05161..e34a0675 100644 --- a/proto/col_uint8_gen.go +++ b/proto/col_uint8_gen.go @@ -42,7 +42,7 @@ func (c *ColUInt8) AppendArr(vs []uint8) { *c = append(*c, vs...) } -// LowCardinality returns LowCardinality for UInt8 . +// LowCardinality returns LowCardinality for UInt8. func (c *ColUInt8) LowCardinality() *ColLowCardinality[uint8] { return &ColLowCardinality[uint8]{ index: c,