![]() |
![]() |
![]() |
Приложение В. Двоичный формат команды COPY Выходные данные команды COPY могут сохраняться не только в текстовом, но и в двоичном формате PostgreSQL. С файлами, сохраненными в двоичном формате, невозможно работать в обычных текстовых редакторах. Заголовок Заголовок двоичного файла PostgreSQL состоит из фиксированного набора полей общей длиной 24 байта и расширенного заголовка переменной длины. Ниже перечислены фиксированные поля заголовка.
Записи Записи в двоичном файле начинаются с 16-разрядного целого количества полей (одинакового для каждой записи). Затем следует 16-разрядное целое поле typlen, после чего — поля данных. Допустимые значения поля typlen перечислены ниже.
Чтобы приложение, читающее этот формат, могло легко проверить целостность двоичных данных, со всеми полями, отличными от NULL, ассоциируется значение typlen, которое может сравниваться с полем typlen приемного поля перед попытками вставки или обновления данных в PostgreSQL. Некоторые параметры форматирования остались нереализованными; такое решение было принято для лучшей переносимости двоичных файлов. Следует упомянуть о невозможности хранения дополнительных данных между полями (например, посредством дополнения при выравнивании), а также об отсутствии различий между типами данных по способу передачи (по ссылке и по значению). Если в двоичный файл PostgreSQL включаются идентификаторы объектов (OID), они следуют сразу же после поля-счетчика. При подсчете полей значения OID не учитываются. Завершение Двоичные файлы PostgreSQL завершаются простым 16-разрядным целым числом -1, за которым следует конец файла. Значение легко отличается от начального 16-разрядного счетчика полей, и это обстоятельство упрощает синхронизацию данных в приложениях. |
![]() |
![]() |
![]() |