PostgreSQLDtype¶
- class PostgreSQLDtype¶
Перечисление типов данных PostgreSQL/Greenplum с привязанными функциями чтения/записи.
Описание:
Enum, ассоциирующий каждый тип данных PostgreSQL/Greenplum с:
Именем типа в PostgreSQL/Greenplum
Соответствующим типом Python
Длиной данных в байтах (-1 для переменной длины)
Функцией чтения из бинарного формата COPY
Функцией записи в бинарный формат COPY
Структура PGTypeFunc:
- class PGTypeFunc(name, pytype, length, read, write)¶
- Параметры:
name (str) – Имя типа в PostgreSQL/Greenplum
pytype (type) – Соответствующий тип Python
length (int) – Длина данных в байтах
read (FunctionType) – Функция чтения
write (FunctionType) – Функция записи
Значения длины:
Положительное число: фиксированная длина типа
-1: переменная длина16: UUID, интервал32: box, lseg24: line, circle
Пример использования:
dtype = PostgreSQLDtype.Int4
print(dtype.name) # "Int4"
print(dtype.pytype) # <class 'int'>
print(dtype.length) # 4
value = dtype.read(binary_data, None, None, None)
bytes_data = dtype.write(42, None, None, None)
Особенности:
Объединяет чтение и запись для скалярных типов
Для массивов использует
read_array/write_arrayАвтоматическое определение по OID типа PostgreSQL/Greenplum
Назначение:
Централизованное управление функциями сериализации/десериализации для всех поддерживаемых типов данных PostgreSQL/Greenplum.