получения метаданных выполняет запрос с условием WHERE 1=0, после чего КХ пытается его пробросить внутрь подзапросов, среди которых один выполняется к постгресу, выяснилось что КХ не может транслировать такую конструкцию в ПГ.
Может есть какая то функция для этого? Или заводить тикет?
КХ - 21.11.8.4
select * from postgresql(...)
where 1=0
std::exception. Code: 1001, type: pqxx::sql_error, e.what() = ERROR: argument of WHERE must be type boolean, not type integer
pqxx::sql_error ошибка от PostgreSQL прилетает. а не от clickhouse как такового попробуйте посмотреть какой конкретно запрос уходит в postgres через tcpdump например и после этого уже можно попробовать issue на github завести
коннектор ODBC? JDBC? в manifest.xml есть два свойства CAP_QUERY_TOP_0_METADATA CAP_QUERY_WHERE_FALSE_METADATA если первое поставить в ‘yes’, а второе в ‘no’ — как будет отрабатывать?
я у себя (JDBC) в последнем релизе оставил только WHERE FALSE == ‘yes’ — а это как раз твой случай. можешь взять неупакованный коннектор и поменять манифест? у меня под рукой щас нет внешнего PG словаря для проверки
ну это локальное решение, в DataGrip поведение такое же
ну хотя бы Табло пофиксить от греха подальше 😉
похоже превращает WHERE 1=0 просто в 0
тогда это похоже на БАГ отловите оригинальный запрос попробуйте убрать из него все лишнее чтобы только postgresql таблица осталась... и посмотрите что изменится
А ну это я проверял. Если сделать чистый селект from postgresql(...) where 1=0 то ошибка остаётся
можете сделать issue на github? судя по всему clickhouse конвертирует 1=0 в булево false и дальше уже его прокидывает как 0 запрос
Да, заведу сегодня
Обсуждают сегодня