Skip to content

Commit 5d0ac85

Browse files
committed
test: add HTTP protocol coverage for issue 1839
1 parent 4722017 commit 5d0ac85

1 file changed

Lines changed: 45 additions & 3 deletions

File tree

tests/issues/1839_test.go

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ import (
44
"context"
55
"testing"
66

7-
clickhouse_tests "github.com/ClickHouse/clickhouse-go/v2/tests"
87
"github.com/stretchr/testify/require"
8+
9+
"github.com/ClickHouse/clickhouse-go/v2"
10+
clickhouse_tests "github.com/ClickHouse/clickhouse-go/v2/tests"
911
)
1012

1113
func Test1839(t *testing.T) {
@@ -16,10 +18,10 @@ func Test1839(t *testing.T) {
1618
t.Cleanup(func() { conn.Close() })
1719

1820
require.NoError(t, conn.Exec(t.Context(), `
19-
CREATE TABLE test_1839 (
21+
CREATE TABLE test_1839 (
2022
col Enum8('a\'b' = 1, 'c\'d' = 2, 'a\'b\'c' = 3)
2123
) ENGINE = MergeTree ORDER BY tuple()
22-
`), "Create table failed")
24+
`), "Create table failed")
2325

2426
t.Cleanup(func() {
2527
if err := conn.Exec(context.Background(), "DROP TABLE IF EXISTS test_1839"); err != nil {
@@ -47,3 +49,43 @@ func Test1839(t *testing.T) {
4749
require.NoError(t, rows.Err(), "Scan failed")
4850
require.Equal(t, []string{"a'b", "c'd", "a'b'c"}, results)
4951
}
52+
53+
func Test1839HTTP(t *testing.T) {
54+
testEnv, err := clickhouse_tests.GetTestEnvironment("issues")
55+
require.NoError(t, err)
56+
conn, err := clickhouse_tests.GetConnection("issues", t, clickhouse.HTTP, clickhouse_tests.TestClientDefaultSettings(testEnv), nil, nil)
57+
require.NoError(t, err)
58+
t.Cleanup(func() { conn.Close() })
59+
60+
require.NoError(t, conn.Exec(t.Context(), `
61+
CREATE TABLE test_1839_http (
62+
col Enum8('a\'b' = 1, 'c\'d' = 2, 'a\'b\'c' = 3)
63+
) ENGINE = MergeTree ORDER BY tuple()
64+
`), "Create table failed")
65+
66+
t.Cleanup(func() {
67+
if err := conn.Exec(context.Background(), "DROP TABLE IF EXISTS test_1839_http"); err != nil {
68+
t.Logf("DROP TABLE test_1839_http failed: %v", err)
69+
}
70+
})
71+
72+
batch, err := conn.PrepareBatch(t.Context(), "INSERT INTO test_1839_http")
73+
require.NoError(t, err, "PrepareBatch failed")
74+
require.NoError(t, batch.Append("a'b"), "Append failed for %q", "a'b")
75+
require.NoError(t, batch.Append("c'd"), "Append failed for %q", "c'd")
76+
require.NoError(t, batch.Append("a'b'c"), "Append failed for %q", "a'b'c")
77+
require.NoError(t, batch.Send(), "Send failed")
78+
79+
rows, err := conn.Query(t.Context(), "SELECT col FROM test_1839_http ORDER BY col")
80+
require.NoError(t, err, "SELECT col failed")
81+
defer rows.Close()
82+
83+
var results []string
84+
for rows.Next() {
85+
var s string
86+
require.NoError(t, rows.Scan(&s))
87+
results = append(results, s)
88+
}
89+
require.NoError(t, rows.Err(), "Scan failed")
90+
require.Equal(t, []string{"a'b", "c'd", "a'b'c"}, results)
91+
}

0 commit comments

Comments
 (0)