184 похожих чатов

Всем привет! Скажите, кто-то работал с КХ из go? Наткнулся на вроде

как баг, не пойму чей он. Вроде на КХ запросы выполняются, поэтому подозреваю, что это на его стороне.
Пытаюсь сделать мультилайн-инсерт (4 строки по 5 полей).
if transaction, err = db.ClickHouseClient.Begin(); err != nil {
log.Error(fmt.Errorf("Can't start transaction: %v", err))
return
}
if stmt, err = transaction.Prepare(sql); err != nil {
log.Error(fmt.Errorf("Can't prepare statment (%s): %v", sql, err))
transaction.Rollback()
return
}
if _, err = stmt.Exec(data...); err != nil {
log.Error(fmt.Errorf("Can't execute statment (%s) with data (%v): %v", sql, data, err))
transaction.Rollback()
return
}
если data - это []interface{} из 20 элементов, то получаю ответ, что ожидается 5
[clickhouse][begin] tx=false, data=false
[clickhouse][prepare] INSERT INTO events (uid, pid, event, geodata, created_at) FORMAT VALUES (?,?,?,?,?),(?,?,?,?,?),(?,?,?,?,?),(?,?,?,?,?)
[clickhouse][send query] INSERT INTO events (uid, pid, event, geodata, created_at) FORMAT VALUES
[clickhouse][rollback] tx=true, data=true
[clickhouse]-> ping
2017/08/11 12:05:56 [err] Can't execute statment (INSERT INTO events (uid, pid, event, geodata, created_at) FORMAT VALUES (?,?,?,?,?),(?,?,?,?,?),(?,?,?,?,?),(?,?,?,?,?)) with data ([WXOsS2b6HKVar5J3 10 h_view RU74Челябинск 2017-08-11 12:05:44.144234036 +0300 +03 WXOsS2b6HKVar5J3 1 h_view RU74Челябинск 2017-08-11 12:05:45.216646508 +0300 +03 WXOsS2b6HKVar5J3 10 h_view RU74Челябинск 2017-08-11 12:05:46.242552452 +0300 +03 WXOsS2b6HKVar5J3 1 h_view RU74Челябинск 2017-08-11 12:05:47.160877142 +0300 +03]): block: expected 5 arguments (columns: uid, pid, event, geodata, created_at), got 20
[clickhouse][stmt] close
а если передаю не правильное количество аргументов (слайс слайсов интерфейсов 5х4), то он уже ожидает 20, а получил 4
`

1 ответов

13 просмотров

Как говорил Джобс: "Вы держите его неправильно" делайте INSERT INTO events VALUES (?, ?, ?, ?, ?) Далее в цикле забиваете данные через execute (у вас получится 4 итерации по 5 значений) и Commit который отошлет блок данных на сервер

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта