From fa41fb167aad522784d2a3bcf399181eccf3de4d Mon Sep 17 00:00:00 2001 From: Philipp Schreiber Date: Fri, 24 May 2024 17:10:42 +0200 Subject: [PATCH 1/3] map tests --- clickhouse_test.go | 9 +++++---- conn_go18_test.go | 2 +- conn_test.go | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/clickhouse_test.go b/clickhouse_test.go index fa64ca7..ff0f585 100644 --- a/clickhouse_test.go +++ b/clickhouse_test.go @@ -38,12 +38,13 @@ var ddls = []string{ fs FixedString(8), lc LowCardinality(String), m Map(String, Array(Int64)), - mi64 Map(String, Int64) + mi64 Map(String, Int64), + miint32int32 Map(Int32, Int32) ) ENGINE = Memory`, `INSERT INTO data VALUES - (-1, 1, 1.0, true, '1', '1', [1], [10], '2011-03-06', '2011-03-06 06:20:00', 'one', '10.1111', '100.1111', '1000.1111', '1.1111', '127.0.0.1', '2001:db8:3333:4444:5555:6666:7777:8888', '12345678', 'one', {'key1':[1]}, {'key1':1}), - (-2, 2, 2.0, false, '2', '2', [2], [20], '2012-05-31', '2012-05-31 11:20:00', 'two', '30.1111', '300.1111', '2000.1111', '2.1111', '8.8.8.8', '2001:db8:3333:4444:CCCC:DDDD:EEEE:FFFF', '88888888', 'two', {'key2':[2]}, {'key2':2}), - (-3, 3, 3.0, true, '3', '2', [3], [30], '2016-04-04', '2016-04-04 11:30:00', 'three', '40.1111', '400.1111', '3000.1111', '3.1111', '255.255.255.255', '::1234:5678', '87654321', 'three', {'key3':[3]}, {'key3':3}) + (-1, 1, 1.0, true, '1', '1', [1], [10], '2011-03-06', '2011-03-06 06:20:00', 'one', '10.1111', '100.1111', '1000.1111', '1.1111', '127.0.0.1', '2001:db8:3333:4444:5555:6666:7777:8888', '12345678', 'one', {'key1':[1]}, {'key1':1}, {1:1}), + (-2, 2, 2.0, false, '2', '2', [2], [20], '2012-05-31', '2012-05-31 11:20:00', 'two', '30.1111', '300.1111', '2000.1111', '2.1111', '8.8.8.8', '2001:db8:3333:4444:CCCC:DDDD:EEEE:FFFF', '88888888', 'two', {'key2':[2]}, {'key2':2}, {2:2}), + (-3, 3, 3.0, true, '3', '2', [3], [30], '2016-04-04', '2016-04-04 11:30:00', 'three', '40.1111', '400.1111', '3000.1111', '3.1111', '255.255.255.255', '::1234:5678', '87654321', 'three', {'key3':[3]}, {'key3':3}, {3:3}) `, } diff --git a/conn_go18_test.go b/conn_go18_test.go index 403e0e1..8e4c09c 100644 --- a/conn_go18_test.go +++ b/conn_go18_test.go @@ -60,7 +60,7 @@ func (s *connSuite) TestColumnTypes() { "Int64", "UInt64", "Float64", "Bool", "String", "String", "Array(Int16)", "Array(UInt8)", "Date", "DateTime", "Enum8('one' = 1, 'two' = 2, 'three' = 3)", "Decimal(9, 4)", "Decimal(18, 4)", "Decimal(38, 4)", "Decimal(10, 4)", "IPv4", "IPv6", "FixedString(8)", "LowCardinality(String)", - "Map(String, Array(Int64))", "Map(String, Int64)", + "Map(String, Array(Int64))", "Map(String, Int64)", "Map(Int32, Int32)", } s.Require().Equal(len(expected), len(types)) for i, e := range expected { diff --git a/conn_test.go b/conn_test.go index 0bdf1ee..61198f9 100644 --- a/conn_test.go +++ b/conn_test.go @@ -50,6 +50,7 @@ func (s *connSuite) TestQuery() { "2001:db8:3333:4444:5555:6666:7777:8888", "12345678", "one", map[string][]int64{"key1": {1}}, map[string]int64{"key1": 1}, + map[int32]int32{1: 1}, }, }, }, From 7914e96d3687fffb6e9aef439dae126444b23e70 Mon Sep 17 00:00:00 2001 From: Philipp Schreiber Date: Fri, 24 May 2024 17:32:06 +0200 Subject: [PATCH 2/3] break number rune reader on colon for map keys --- dataparser.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataparser.go b/dataparser.go index 0c59ac8..8beca8d 100644 --- a/dataparser.go +++ b/dataparser.go @@ -38,7 +38,7 @@ loop: switch r { case eof: break loop - case ',', ']', ')', '}': + case ',', ']', ')', '}', ':': _ = s.UnreadRune() break loop } From 2e3c7ea60b474b2d42c82a106b11d767ca4d29b9 Mon Sep 17 00:00:00 2001 From: Philipp Schreiber Date: Sun, 26 May 2024 21:11:11 +0200 Subject: [PATCH 3/3] fix unrelated test --- conn_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conn_test.go b/conn_test.go index 61198f9..c633f06 100644 --- a/conn_test.go +++ b/conn_test.go @@ -182,8 +182,8 @@ func (s *connSuite) TestServerError() { srvErr, ok := err.(*Error) s.Require().True(ok, err.Error()) s.Equal(60, srvErr.Code) - s.Contains(srvErr.Message, "Table default") - s.Contains(srvErr.Error(), "Code: 60, Message: Table default") + s.Contains(srvErr.Message, "Unknown table expression identifier '???' in scope SELECT 1 FROM `???`") + s.Contains(srvErr.Error(), "Code: 60, Message: Unknown table expression identifier '???' in scope SELECT 1 FROM `???`") } func (s *connSuite) TestServerKillQuery() {