Un pcpointset es un conjunto ordenado de valores pcpoint distintos; un pcpatchset es el tipo de conjunto análogo para pcpatch. Ambos siguen la semántica general de conjuntos de MobilityDB (véase Capítulo 2, Tipos de conjunto y de rango): los valores se deduplicen en la construcción, la representación binaria es canónica, y todos los operadores genéricos a nivel de conjunto (=, <>, <, <=, >, >=, @>, <@, &&, +, -, *) y las funciones de acceso (numValues, memSize, asText, asBinary, asEWKB, asHexWKB, asHexEWKB, …) están disponibles (véase las representaciones binarias de un conjunto espacial). El esquema pcid, y su SRID, se resuelve fuera de banda a partir del catálogo pointcloud_formats en lugar de incluirse en el valor, por lo que asBinary/asEWKB y asHexWKB/asHexEWKB devuelven los mismos bytes para ambos tipos de conjunto.
Todos los valores de un conjunto deben compartir el mismo pcid. Mezclar esquemas en un único conjunto genera un error en el momento de la construcción.
Construye un conjunto a partir de un array de valores, todos los cuales deben compartir el mismo pcid
set(pcpoint[]) → pcpointset set(pcpatch[]) → pcpatchset
SELECT numValues(set(ARRAY[PC_MakePoint(1, ARRAY[10.0, 20.0, 30.0]), PC_MakePoint(1, ARRAY[10.0, 20.0, 30.0]), -- duplicate, deduped PC_MakePoint(1, ARRAY[11.0, 21.0, 31.0])])); -- 2