This commit adds a PC_Full_Version function whose output is as follows:
# select pc_full_version();
pc_full_version
------------------------------------------------------------------------------------------
POINTCLOUD="1.1.0" PGSQL="96" LIBXML2="2.9.4" LIBGHT enabled=false LAZPERF enabled=false
(1 row)
This removes the "stat text default" argument from the PC_PatchMin, PC_PatchMax and PC_PatchAvg functions. This argument is not used, and it causes performance issues as reported in https://github.com/pgpointcloud/pointcloud/issues/187.
With this, after upgrading, the PC_PatchMin, PC_PatchMax and PC_PatchAvg functions with the previous signature (with three arguments) will be preserved. DROP FUNCTION PC_PatchXXX(pcpatch, text, text) should be used to drop them.
This commit adds a `PC_Transform` function that returns a new patch with its data transformed based on the passed `pcid`.
In contrast to `PC_SetPCId` this function may reinterpret the data if dimension interpretations, scales or offsets are different in the new schema. In the future `PC_Transform` will also re-project the patch data if the schema `srid` has changed, but that is not yet supported.
Type I/O functions should not be volatile. PostgreSQL 9.5 and above include a test for this, yielding this warning when a volatile function is detected:
WARNING: type input function pointcloud_abs_in should not be volatile
This commit makes pointcloud_abs_out and pointcloud_abs_in, which are currently empty shells, non-volatile.
This commit adds a PC_Range function. This function returns a patch of "count" points. These points are selected from the start-th point in the input patch.
* PC_Sort and PC_IsSorted
* fixing -Wdeclaration-after-statement warnings
* using sort_r for a portable definition of qsort_r/qsort_s
* uncompression fallback for lazperf/is_sorted
* NEWS updated, sort_r github reference and README added