Merge pull request #224 from pblottiere/fix_installcheck_tests

Fix compilation and installcheck when lazperf is disabled
This commit is contained in:
Blottiere Paul 2018-06-19 15:08:13 +01:00 committed by GitHub
commit 872f0b6f03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 216 additions and 21 deletions

View File

@ -25,6 +25,7 @@ addons:
script:
- eclint check * */* */cunit/*
- ./tools/build-install.sh # test compilation without lazperf
- ./tools/build-install.sh --with-lazperf=/usr/local && make check && ./tools/valgrind.sh
- make installcheck || { cat pgsql/regression.diffs && false; }
- (cd tools/benchmark_compression && sh compression_benchmark.sh)

View File

@ -913,6 +913,7 @@ test_patch_range_compression_none_with_out_of_bounds_first()
test_patch_range_compression_none_with_bad_arguments(21, 1);
}
#ifdef HAVE_LAZPERF
static void
test_patch_range_compression_lazperf()
{
@ -947,6 +948,7 @@ test_patch_range_compression_lazperf()
pc_patch_free(pa);
pc_pointlist_free(pl);
}
#endif /* HAVE_LAZPERF */
static void
test_patch_range_compression_dimensional(enum DIMCOMPRESSIONS dimcomp)

View File

@ -38,6 +38,39 @@ VALUES (5, 0,
<Metadata name="compression">laz</Metadata>
</pc:metadata>
</pc:PointCloudSchema>'
)
,(10, 0, -- All (signed) interpretations, uncompressed
'<?xml version="1.0" encoding="UTF-8"?>
<pc:PointCloudSchema xmlns:pc="http://pointcloud.org/schemas/PC/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<pc:dimension> <pc:position>1</pc:position> <pc:name>x</pc:name>
<pc:size>1</pc:size> <pc:interpretation>int8_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>2</pc:position> <pc:name>y</pc:name>
<pc:size>2</pc:size> <pc:interpretation>int8_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>3</pc:position> <pc:name>i2</pc:name>
<pc:size>2</pc:size> <pc:interpretation>int16_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>4</pc:position> <pc:name>i4</pc:name>
<pc:size>4</pc:size> <pc:interpretation>int32_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>5</pc:position> <pc:name>i8</pc:name>
<pc:size>8</pc:size> <pc:interpretation>int64_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>6</pc:position> <pc:name>f4</pc:name>
<pc:size>4</pc:size> <pc:interpretation>float</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>7</pc:position> <pc:name>f8</pc:name>
<pc:size>8</pc:size> <pc:interpretation>double</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
</pc:PointCloudSchema>'
);
CREATE TABLE IF NOT EXISTS pa_test_laz (
id SERIAL,
@ -373,4 +406,115 @@ SELECT pc_astext(PC_PointN(pa, 2)) FROM pa_test_laz;
{"pcid":5,"pt":[2,1.9,0.34,10]}
(1 row)
WITH points AS (
SELECT ARRAY[
(2^08/256.0*v)*0.01, -- int8_t
-(2^08/256.0*v)*0.01, -- int8_t
(2^16/256.0*v)*0.01, -- int16_t
(2^32/256.0*v)*0.01, -- int32_t
(2^64/256.0*v)*0.01, -- int64_t
(2^32/256.0*v)*0.01, -- float
(2^64/256.0*v)*0.01 -- double
] a, v/16 v
FROM generate_series(-127,127,4) v
), p1 AS (
SELECT v, PC_Patch(PC_MakePoint(10, a)) p from points -- uncompressed
GROUP BY v
)
SELECT 'compr' test,
p1.v, compr, sc,
PC_AsText(p1.p) =
PC_AsText(PC_Compress(p1.p, compr,
array_to_string(
array_fill(sc,ARRAY[7]),
','
)
)) ok
FROM p1, ( values
('dimensional','rle'),
('dimensional','zlib'),
('dimensional','sigbits'),
('dimensional','auto'),
('laz', 'null')
) dimcompr(compr,sc)
ORDER BY compr,sc,v;
test | v | compr | sc | ok
-------+----+-------------+---------+----
compr | -7 | dimensional | auto | t
compr | -6 | dimensional | auto | t
compr | -5 | dimensional | auto | t
compr | -4 | dimensional | auto | t
compr | -3 | dimensional | auto | t
compr | -2 | dimensional | auto | t
compr | -1 | dimensional | auto | t
compr | 0 | dimensional | auto | t
compr | 1 | dimensional | auto | t
compr | 2 | dimensional | auto | t
compr | 3 | dimensional | auto | t
compr | 4 | dimensional | auto | t
compr | 5 | dimensional | auto | t
compr | 6 | dimensional | auto | t
compr | 7 | dimensional | auto | t
compr | -7 | dimensional | rle | t
compr | -6 | dimensional | rle | t
compr | -5 | dimensional | rle | t
compr | -4 | dimensional | rle | t
compr | -3 | dimensional | rle | t
compr | -2 | dimensional | rle | t
compr | -1 | dimensional | rle | t
compr | 0 | dimensional | rle | t
compr | 1 | dimensional | rle | t
compr | 2 | dimensional | rle | t
compr | 3 | dimensional | rle | t
compr | 4 | dimensional | rle | t
compr | 5 | dimensional | rle | t
compr | 6 | dimensional | rle | t
compr | 7 | dimensional | rle | t
compr | -7 | dimensional | sigbits | t
compr | -6 | dimensional | sigbits | t
compr | -5 | dimensional | sigbits | t
compr | -4 | dimensional | sigbits | t
compr | -3 | dimensional | sigbits | t
compr | -2 | dimensional | sigbits | t
compr | -1 | dimensional | sigbits | t
compr | 0 | dimensional | sigbits | t
compr | 1 | dimensional | sigbits | t
compr | 2 | dimensional | sigbits | t
compr | 3 | dimensional | sigbits | t
compr | 4 | dimensional | sigbits | t
compr | 5 | dimensional | sigbits | t
compr | 6 | dimensional | sigbits | t
compr | 7 | dimensional | sigbits | t
compr | -7 | dimensional | zlib | t
compr | -6 | dimensional | zlib | t
compr | -5 | dimensional | zlib | t
compr | -4 | dimensional | zlib | t
compr | -3 | dimensional | zlib | t
compr | -2 | dimensional | zlib | t
compr | -1 | dimensional | zlib | t
compr | 0 | dimensional | zlib | t
compr | 1 | dimensional | zlib | t
compr | 2 | dimensional | zlib | t
compr | 3 | dimensional | zlib | t
compr | 4 | dimensional | zlib | t
compr | 5 | dimensional | zlib | t
compr | 6 | dimensional | zlib | t
compr | 7 | dimensional | zlib | t
compr | -7 | laz | null | t
compr | -6 | laz | null | t
compr | -5 | laz | null | t
compr | -4 | laz | null | t
compr | -3 | laz | null | t
compr | -2 | laz | null | t
compr | -1 | laz | null | t
compr | 0 | laz | null | t
compr | 1 | laz | null | t
compr | 2 | laz | null | t
compr | 3 | laz | null | t
compr | 4 | laz | null | t
compr | 5 | laz | null | t
compr | 6 | laz | null | t
compr | 7 | laz | null | t
(75 rows)
TRUNCATE pointcloud_formats;

View File

@ -531,8 +531,7 @@ FROM p1, ( values
('dimensional','rle'),
('dimensional','zlib'),
('dimensional','sigbits'),
('dimensional','auto'),
('laz','null')
('dimensional','auto')
) dimcompr(compr,sc)
ORDER BY compr,sc,v;
test | v | compr | sc | ok
@ -597,22 +596,7 @@ ORDER BY compr,sc,v;
compr | 5 | dimensional | zlib | t
compr | 6 | dimensional | zlib | t
compr | 7 | dimensional | zlib | t
compr | -7 | laz | null | t
compr | -6 | laz | null | t
compr | -5 | laz | null | t
compr | -4 | laz | null | t
compr | -3 | laz | null | t
compr | -2 | laz | null | t
compr | -1 | laz | null | t
compr | 0 | laz | null | t
compr | 1 | laz | null | t
compr | 2 | laz | null | t
compr | 3 | laz | null | t
compr | 4 | laz | null | t
compr | 5 | laz | null | t
compr | 6 | laz | null | t
compr | 7 | laz | null | t
(75 rows)
(60 rows)
SELECT PC_Summary(PC_Compress(PC_Patch(PC_MakePoint(10,ARRAY[1,1,1,1,1,1,1])),
'dimensional'))::json->'compr';

View File

@ -38,9 +38,41 @@ VALUES (5, 0,
<Metadata name="compression">laz</Metadata>
</pc:metadata>
</pc:PointCloudSchema>'
)
,(10, 0, -- All (signed) interpretations, uncompressed
'<?xml version="1.0" encoding="UTF-8"?>
<pc:PointCloudSchema xmlns:pc="http://pointcloud.org/schemas/PC/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<pc:dimension> <pc:position>1</pc:position> <pc:name>x</pc:name>
<pc:size>1</pc:size> <pc:interpretation>int8_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>2</pc:position> <pc:name>y</pc:name>
<pc:size>2</pc:size> <pc:interpretation>int8_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>3</pc:position> <pc:name>i2</pc:name>
<pc:size>2</pc:size> <pc:interpretation>int16_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>4</pc:position> <pc:name>i4</pc:name>
<pc:size>4</pc:size> <pc:interpretation>int32_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>5</pc:position> <pc:name>i8</pc:name>
<pc:size>8</pc:size> <pc:interpretation>int64_t</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>6</pc:position> <pc:name>f4</pc:name>
<pc:size>4</pc:size> <pc:interpretation>float</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
<pc:dimension> <pc:position>7</pc:position> <pc:name>f8</pc:name>
<pc:size>8</pc:size> <pc:interpretation>double</pc:interpretation>
<pc:scale>0.01</pc:scale>
</pc:dimension>
</pc:PointCloudSchema>'
);
CREATE TABLE IF NOT EXISTS pa_test_laz (
id SERIAL,
pa PCPATCH(5)
@ -161,4 +193,37 @@ SELECT pc_astext(pc_explode(pa)) FROM pa_test_laz_multiple_dim LIMIT 20;
SELECT pc_astext(PC_PointN(pa, 2)) FROM pa_test_laz;
WITH points AS (
SELECT ARRAY[
(2^08/256.0*v)*0.01, -- int8_t
-(2^08/256.0*v)*0.01, -- int8_t
(2^16/256.0*v)*0.01, -- int16_t
(2^32/256.0*v)*0.01, -- int32_t
(2^64/256.0*v)*0.01, -- int64_t
(2^32/256.0*v)*0.01, -- float
(2^64/256.0*v)*0.01 -- double
] a, v/16 v
FROM generate_series(-127,127,4) v
), p1 AS (
SELECT v, PC_Patch(PC_MakePoint(10, a)) p from points -- uncompressed
GROUP BY v
)
SELECT 'compr' test,
p1.v, compr, sc,
PC_AsText(p1.p) =
PC_AsText(PC_Compress(p1.p, compr,
array_to_string(
array_fill(sc,ARRAY[7]),
','
)
)) ok
FROM p1, ( values
('dimensional','rle'),
('dimensional','zlib'),
('dimensional','sigbits'),
('dimensional','auto'),
('laz', 'null')
) dimcompr(compr,sc)
ORDER BY compr,sc,v;
TRUNCATE pointcloud_formats;

View File

@ -364,8 +364,7 @@ FROM p1, ( values
('dimensional','rle'),
('dimensional','zlib'),
('dimensional','sigbits'),
('dimensional','auto'),
('laz','null')
('dimensional','auto')
) dimcompr(compr,sc)
ORDER BY compr,sc,v;