|
| 1 | +package issues |
| 2 | + |
| 3 | +import ( |
| 4 | + "context" |
| 5 | + "github.com/ClickHouse/clickhouse-go/v2/tests" |
| 6 | + "github.com/stretchr/testify/require" |
| 7 | + "testing" |
| 8 | +) |
| 9 | + |
| 10 | +func TestIssue1515(t *testing.T) { |
| 11 | + ctx := context.Background() |
| 12 | + |
| 13 | + conn, err := tests.GetConnection("issues", nil, nil, nil) |
| 14 | + require.NoError(t, err) |
| 15 | + defer conn.Close() |
| 16 | + |
| 17 | + row := conn.QueryRow(ctx, "SELECT CAST((['key', 'key2'], ['value', null]), 'Map(String, Nullable(String))')") |
| 18 | + require.NoError(t, row.Err()) |
| 19 | + |
| 20 | + var resultStr map[string]*string |
| 21 | + err = row.Scan(&resultStr) |
| 22 | + require.NoError(t, err) |
| 23 | + require.Len(t, resultStr, 2) |
| 24 | + require.NotNil(t, resultStr["key"]) |
| 25 | + require.Equal(t, "value", *resultStr["key"]) |
| 26 | + require.Nil(t, resultStr["key2"]) |
| 27 | + |
| 28 | + row = conn.QueryRow(ctx, "SELECT CAST((['key', 'key2'], [42, null]), 'Map(String, Nullable(Int64))')") |
| 29 | + require.NoError(t, row.Err()) |
| 30 | + |
| 31 | + var resultInt map[string]*int64 |
| 32 | + err = row.Scan(&resultInt) |
| 33 | + require.NoError(t, err) |
| 34 | + require.Len(t, resultInt, 2) |
| 35 | + require.NotNil(t, resultInt["key"]) |
| 36 | + require.Equal(t, int64(42), *resultInt["key"]) |
| 37 | + require.Nil(t, resultInt["key2"]) |
| 38 | +} |
0 commit comments