с колонками различных хэшей хранящихся как сырые байты в FixedString() и колонки с обычными строками в String().
Столкнулся с проблемой автоматической конвертации типа значений для строк в драйвере.
У драйвера есть поддержка опции 'strings as bytes', но при её передаче все типы строк возвращаются как байты.
Есть ли возможность указать какие именно колонки в запросе не декодировать и отдавать в сыром виде?
Возможности указывать нет. Либо все строковые типы поступают в питон как байты, без обработки, либо декодируются с выбранной локалью (по умолчанию UTF-8).
Это прям печаль ((
Как вы хотите, чтобы это работало? У вас есть запрос SELECT 'a', 'b'. Как сказать, чтобы a — вернулось в питон строкой, а b — байтами?
Хотелось бы раздельной настройки для String и FixedString
Но это же не решит проблему. Кто-то в одной колонке будет хранить строки, которые надо декодировать по умолчанию, а другой, которые не надо. При этом у них будет один и тот же тип. В таких случаях можно просто запрашивать байты, а в питоне уже декодировать что необходимо.
сейчас так и приходится делать. на гитхабе драйвера есть ветка как раз с поддержкой подобной фичи - но в мастер она не замерджена и не факт что такой метод будет стабильно работать
Обсуждают сегодня