Передача массива массива в заполнитель условия IN с go sql

Вступление

Я сталкиваюсь с проблемой, когда пытаюсь передать несколько пар значений в состоянии IN. Когда я пытаюсь выполнить запрос в консоли postgres, он работает нормально, но не выполняется при выполнении в go.

Ситуация

Запрос, который я пытаюсь выполнить, имеет следующую форму:

select * 
from someTable 
where (someTable.colA, someTable.colB) in ($1)

В консоли пытаюсь

select * 
from someTable 
where (someTable.colA, someTable.colB) in ((val1a, val1b), (val2a, val2b))

работает без нареканий, но не когда

Что я пробовал

Единственное, что заставило меня где-то использовать pq.Array,

query := "select * from someTable where (someTable.colA, someTable.colB) in ($1)"
pgDb.Query(query, pq.Array([][]interface{}{{"030043B", 49}, {"030002B", 49}}))

Ошибка, которую я получаю, написана на французском языке, но в грубом переводе она, вероятно, соответствует input of composite type columns is not implemented (Оригинал сообщения l'ajout de colonnes ayant un type composé n'est pas implémenté).

Последнее решение, которое я мог бы сделать, это вручную заменить в запросе мои параметры, но я бы предпочел избежать. Если дело доходит до того, что все в порядке, это данные, поступающие из БД без ввода данных пользователем, здесь нет возможности для инъекции.

Спасибо за ваше время

0 ответов

Другие вопросы по тегам