Representación binaria y portabilidad

Tanto tpcpoint como tpcpatch admiten la E/S binaria estándar de MobilityDB a través de asBinary / tpcpointFromBinary / tpcpatchFromBinary, y a través de COPY ... (FORMAT BINARY) de PostgreSQL. La codificación incrusta el pcid de cada valor junto a la carga de dimensiones, por lo que el blob binario es inequívoco sobre bajo qué esquema se escribieron los valores.

Siempre que el backend de codificación tenga el XML de esquema de un pcid dado registrado en su caché de esquemas a nivel de MEOS (que la extensión de PG rellena de forma perezosa en el primer uso, escaneando pointcloud_formats), el codificador incrusta además el XML de esquema en el blob WKB. El bit MEOS_WKB_PCSCHEMAFLAG (0x80) en el byte de banderas temporales lo señala. Un receptor que aún no conoce el pcid — por ejemplo, un clúster diferente tras un pg_dump --format=binary — analiza y registra automáticamente el esquema incrustado, por lo que la importación tiene éxito sin un paso de precarga de esquema fuera de banda.

Si el backend de codificación solo tiene un PCSCHEMA analizado (sin XML de origen) para un pcid, el bit de esquema se deja sin establecer y el blob es portable solo entre backends que comparten el mismo catálogo pointcloud_formats. Esto coincide con el comportamiento de la codificación anterior sin esquema y es la ruta de reserva cuando la caché se rellenó a mano desde un programa MEOS independiente.

El receptor también necesita que mobilitydb_init se haya ejecutado — automático en cualquier backend que haya cargado la extensión mobilitydb, ya que el módulo de información de funciones instala allí el hook de análisis de XML.