Las funciones asBinary y asHexWKB serializan un valor raquet, y raquetFromBinary y raquetFromHexWKB lo reconstruyen. Una tesela lleva sus píxeles y su georreferenciación QUADBIN en un único valor, de modo que hace un viaje de ida y vuelta a través de una cadena de bytes portable sin intervención de ninguna extensión espacial, y la forma hexadecimal permite que una columna de teselas haga ese viaje mediante un COPY basado en texto. Ambas funciones de salida aceptan un argumento opcional de ordenación de bytes, NDR para little-endian o XDR para big-endian, cuyo valor predeterminado es la ordenación del servidor.
Devolver la representación Well-Known Binary (WKB) de una tesela Raquet
asBinary(raquet,endianencoding text DEFAULT '') → bytea
SELECT length(asBinary(raquet('\x01020304'::bytea, 2, 2, 5193776270265024512,
'uint8')));
-- 31
Devolver la representación Well-Known Binary codificada en hexadecimal ASCII (HexWKB) de una tesela Raquet
asHexWKB(raquet,endianencoding text DEFAULT '') → text
SELECT length(asHexWKB(raquet('\x01020304'::bytea, 2, 2, 5193776270265024512,
'uint8')));
-- 62
Devolver los bytes de píxeles de un mosaico Raquet
pixels(raquet) → bytea
Los bytes están en orden de fila mayor y empaquetados, width × height píxeles del tamaño de pixtype cada uno, en little-endian cuando un píxel ocupa más de un byte, que es la disposición que aceptan los constructores. Por lo tanto, un mosaico se reconstruye a través de sus propios accesores.
SELECT pixels(raquet('\x01020304'::bytea, 2, 2, 5193776270265024512, 'uint8'));
-- \x01020304
Devolver una tesela Raquet a partir de su representación Well-Known Binary (WKB)
raquetFromBinary(bytea) → raquet
SELECT raquetFromBinary(asBinary(raquet('\x01020304'::bytea, 2, 2,
5193776270265024512, 'uint8')))
= raquet('\x01020304'::bytea, 2, 2, 5193776270265024512, 'uint8');
-- true
Devolver una tesela Raquet a partir de su representación Well-Known Binary codificada en hexadecimal ASCII (HexWKB)
raquetFromHexWKB(text) → raquet
SELECT raquetFromHexWKB(asHexWKB(raquet('\x01020304'::bytea, 2, 2,
5193776270265024512, 'uint8')))
= raquet('\x01020304'::bytea, 2, 2, 5193776270265024512, 'uint8');
-- true