@@ -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
1113func 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