Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.05.2017, 09:57
|
|||
|---|---|---|---|
|
|||
cats (bytea to real) или cats (bit(32) to real) |
|||
|
#18+
Коллеги, подскажите пожалуйста оптимальный подход для преобразования 4-х байтов bytea в real. Примерное описание проблемы таково: Есть структуры C++ c 32-разрядной машины которые в бинарном виде льются в bytea поле на Postgres(amd64). Структуры состоят из набора чисел (целочисленных и с плав. точкой). Нужно уметь это парсить на стороне СУБД. С целочисленными я разобрался методом get_byte\git_bit и работает с приемлемой скоростью. А вот с float\double трудновато как-то. Нашёл на pgplsql процедуру по пересчёту но её производительность не устраивает. Понятно, что наверное существенно быстрее будет работать написанная на С процедура которая из 4-х байт делает float. Но, думаю, я же не первый с такой проблемой. Поделитесь плс. опытом в какую сторону двигаться. В попытках cast вод до этого я дошёл пока: postgres=# select get_byte(float4send(0.15625),0)::bit(8),get_byte(float4send(0.15625),1)::bit(8),get_byte(float4send(0.15625),2)::bit(8),get_byte(float4send(0.15625),3)::bit(8); get_byte | get_byte | get_byte | get_byte ----------+----------+----------+---------- 00111110 | 00100000 | 00000000 | 00000000 (1 строка) postgres=# select cast(x'3E200000' as real); ОШИБКА: привести тип bit к real нельзя СТРОКА 1: select cast(x'3E200000' as real); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1996523]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 244ms |

| 0 / 0 |
