Size: a a a

pgsql – PostgreSQL

2020 June 29

ES

Eugene Svalukhin in pgsql – PostgreSQL
Добрый день, подскажите пожалуйста есть ли в Postgres функция которая может строку, являющаюся представлением байтового массива конвертнуть обратно в байтовый массив. Объясняю ситуацию: в бд одно из полей таблицы bytea, данную таблицу выгрузили в csv файл и это поле стало собой представлять строку вида \xстрокабайтовыхоктетов, при импорте данных в таблицу значение в бд в итоге легло как \xстрокабайтовыхоктетов. собственно хотелось бы их преобразовать обратно в массив байтовых октетов
источник

e

er@essbase.ru in pgsql – PostgreSQL
У меня вопрос насколько Питон в Постгресе  развит ?  можно ли в серьез думать о рабочем решении когда данные в PG а логика в процедурах на питоне ?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
er@essbase.ru
У меня вопрос насколько Питон в Постгресе  развит ?  можно ли в серьез думать о рабочем решении когда данные в PG а логика в процедурах на питоне ?
Без средств отладки и совместной разработки развитую логику лучше в базу не пихать.
Но я мог проспать появление оных.
источник

ID

Ivan Druhak in pgsql – PostgreSQL
Привет народ. А могу я както подсчет сделать еще на уровне селекта по колонках которые я сформировал выше в селекте или нет?.
источник

ID

Ivan Druhak in pgsql – PostgreSQL
Просто так 100% будет ошибка...
источник

s

sexst in pgsql – PostgreSQL
Роман Жарков
ORDER BY field is null;
Но я уверен, что вам это не нужно.
Не уверен я что это будет жрат  меньше обычной сортировки, больно уж специфичная оптимизация. Кто-нибудь знает сходу так ли это?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
sexst
Не уверен я что это будет жрат  меньше обычной сортировки, больно уж специфичная оптимизация. Кто-нибудь знает сходу так ли это?
Я уверен, что один хрен.
источник

s

sexst in pgsql – PostgreSQL
er@essbase.ru
У меня вопрос насколько Питон в Постгресе  развит ?  можно ли в серьез думать о рабочем решении когда данные в PG а логика в процедурах на питоне ?
Там прямо обычный пайтон же. Большой минус в том, что он untrusted и, в теории, умеючи можно таким вообще всё положить.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Eugene Svalukhin
Добрый день, подскажите пожалуйста есть ли в Postgres функция которая может строку, являющаюся представлением байтового массива конвертнуть обратно в байтовый массив. Объясняю ситуацию: в бд одно из полей таблицы bytea, данную таблицу выгрузили в csv файл и это поле стало собой представлять строку вида \xстрокабайтовыхоктетов, при импорте данных в таблицу значение в бд в итоге легло как \xстрокабайтовыхоктетов. собственно хотелось бы их преобразовать обратно в массив байтовых октетов
Я не совсем понял, что у Вас случилось... но, может быть, вот эти функции подойдут (encode / decode или  convert_from /  convert_to)?
https://www.postgresql.org/docs/current/functions-string.html#FUNCTIONS-STRING-OTHER
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Ivan Druhak
Привет народ. А могу я както подсчет сделать еще на уровне селекта по колонках которые я сформировал выше в селекте или нет?.
Нет, не можете. Кстати, вместо "COUNT(CASE WHEN  ... THEN 1 ELSE 0 END)" в PostgreSQL есть "COUNT(*) FILTER (WHERE ...)".
источник

ES

Eugene Svalukhin in pgsql – PostgreSQL
Yaroslav Schekin
Я не совсем понял, что у Вас случилось... но, может быть, вот эти функции подойдут (encode / decode или  convert_from /  convert_to)?
https://www.postgresql.org/docs/current/functions-string.html#FUNCTIONS-STRING-OTHER
В общем в оригинальной базе выглядит поле body вот так
источник

ES

Eugene Svalukhin in pgsql – PostgreSQL
А в моей после импорта из csv это поле выглядит вот так
источник

ES

Eugene Svalukhin in pgsql – PostgreSQL
то есть в первом случае это прям байты лежат, а вот во втором это получается байты только в строковом представлении
источник

ES

Eugene Svalukhin in pgsql – PostgreSQL
как бы написать небольшую программку которая всё это конвертнет не проблема, но думал. может быть в постгрессе уже что-то есть из этого разряда
источник

s

sexst in pgsql – PostgreSQL
Yaroslav Schekin
Нет, не можете. Кстати, вместо "COUNT(CASE WHEN  ... THEN 1 ELSE 0 END)" в PostgreSQL есть "COUNT(*) FILTER (WHERE ...)".
Опередили)
@ivanDruhakIkon Можно обернуть в другой select, в котором уже посчитать. Оверхед минимальный в общем-то
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Eugene Svalukhin
то есть в первом случае это прям байты лежат, а вот во втором это получается байты только в строковом представлении
И понятнее не стало. :( Что это за клиент? Я к тому, что, если он всегда выдаёт bytea в hex-виде, как вообще может быть такое, как во втором screenshot ('\' и 'x' — это не hex digits)?!
Может, Вы поле не того типа (text, а не bytea, например) создали?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Eugene Svalukhin
как бы написать небольшую программку которая всё это конвертнет не проблема, но думал. может быть в постгрессе уже что-то есть из этого разряда
Вы функции-то посмотрели / попробовали?
источник

s

sexst in pgsql – PostgreSQL
Eugene Svalukhin
то есть в первом случае это прям байты лежат, а вот во втором это получается байты только в строковом представлении
Во втором случае тип поля тоже bytea, а не text/varchar?
Значение переменной bytea_output чему равно в первой базе и во второй? SHOW bytea_output;
Вообще валидное hex представление для bytea, оно сейчас по дефолту такое
источник

ES

Eugene Svalukhin in pgsql – PostgreSQL
да, в обоих случаях поля bytea имеют тип, клиент у меня Intellij Idea, по поводу переменной сейчас скажу
источник

ES

Eugene Svalukhin in pgsql – PostgreSQL
в обоих случаях стоит 'hex' для переменной
источник