Skip to content

Commit 872f0b6

Browse files
authored
Merge pull request #224 from pblottiere/fix_installcheck_tests
Fix compilation and installcheck when lazperf is disabled
2 parents 61c8dc7 + 2388891 commit 872f0b6

6 files changed

Lines changed: 216 additions & 21 deletions

File tree

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ addons:
2525

2626
script:
2727
- eclint check * */* */cunit/*
28+
- ./tools/build-install.sh # test compilation without lazperf
2829
- ./tools/build-install.sh --with-lazperf=/usr/local && make check && ./tools/valgrind.sh
2930
- make installcheck || { cat pgsql/regression.diffs && false; }
3031
- (cd tools/benchmark_compression && sh compression_benchmark.sh)

lib/cunit/cu_pc_patch.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,7 @@ test_patch_range_compression_none_with_out_of_bounds_first()
913913
test_patch_range_compression_none_with_bad_arguments(21, 1);
914914
}
915915

916+
#ifdef HAVE_LAZPERF
916917
static void
917918
test_patch_range_compression_lazperf()
918919
{
@@ -947,6 +948,7 @@ test_patch_range_compression_lazperf()
947948
pc_patch_free(pa);
948949
pc_pointlist_free(pl);
949950
}
951+
#endif /* HAVE_LAZPERF */
950952

951953
static void
952954
test_patch_range_compression_dimensional(enum DIMCOMPRESSIONS dimcomp)

pgsql/expected/pointcloud-laz.out

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,39 @@ VALUES (5, 0,
3838
<Metadata name="compression">laz</Metadata>
3939
</pc:metadata>
4040
</pc:PointCloudSchema>'
41+
)
42+
,(10, 0, -- All (signed) interpretations, uncompressed
43+
'<?xml version="1.0" encoding="UTF-8"?>
44+
<pc:PointCloudSchema xmlns:pc="http://pointcloud.org/schemas/PC/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
45+
<pc:dimension> <pc:position>1</pc:position> <pc:name>x</pc:name>
46+
<pc:size>1</pc:size> <pc:interpretation>int8_t</pc:interpretation>
47+
<pc:scale>0.01</pc:scale>
48+
</pc:dimension>
49+
<pc:dimension> <pc:position>2</pc:position> <pc:name>y</pc:name>
50+
<pc:size>2</pc:size> <pc:interpretation>int8_t</pc:interpretation>
51+
<pc:scale>0.01</pc:scale>
52+
</pc:dimension>
53+
<pc:dimension> <pc:position>3</pc:position> <pc:name>i2</pc:name>
54+
<pc:size>2</pc:size> <pc:interpretation>int16_t</pc:interpretation>
55+
<pc:scale>0.01</pc:scale>
56+
</pc:dimension>
57+
<pc:dimension> <pc:position>4</pc:position> <pc:name>i4</pc:name>
58+
<pc:size>4</pc:size> <pc:interpretation>int32_t</pc:interpretation>
59+
<pc:scale>0.01</pc:scale>
60+
</pc:dimension>
61+
<pc:dimension> <pc:position>5</pc:position> <pc:name>i8</pc:name>
62+
<pc:size>8</pc:size> <pc:interpretation>int64_t</pc:interpretation>
63+
<pc:scale>0.01</pc:scale>
64+
</pc:dimension>
65+
<pc:dimension> <pc:position>6</pc:position> <pc:name>f4</pc:name>
66+
<pc:size>4</pc:size> <pc:interpretation>float</pc:interpretation>
67+
<pc:scale>0.01</pc:scale>
68+
</pc:dimension>
69+
<pc:dimension> <pc:position>7</pc:position> <pc:name>f8</pc:name>
70+
<pc:size>8</pc:size> <pc:interpretation>double</pc:interpretation>
71+
<pc:scale>0.01</pc:scale>
72+
</pc:dimension>
73+
</pc:PointCloudSchema>'
4174
);
4275
CREATE TABLE IF NOT EXISTS pa_test_laz (
4376
id SERIAL,
@@ -373,4 +406,115 @@ SELECT pc_astext(PC_PointN(pa, 2)) FROM pa_test_laz;
373406
{"pcid":5,"pt":[2,1.9,0.34,10]}
374407
(1 row)
375408

409+
WITH points AS (
410+
SELECT ARRAY[
411+
(2^08/256.0*v)*0.01, -- int8_t
412+
-(2^08/256.0*v)*0.01, -- int8_t
413+
(2^16/256.0*v)*0.01, -- int16_t
414+
(2^32/256.0*v)*0.01, -- int32_t
415+
(2^64/256.0*v)*0.01, -- int64_t
416+
(2^32/256.0*v)*0.01, -- float
417+
(2^64/256.0*v)*0.01 -- double
418+
] a, v/16 v
419+
FROM generate_series(-127,127,4) v
420+
), p1 AS (
421+
SELECT v, PC_Patch(PC_MakePoint(10, a)) p from points -- uncompressed
422+
GROUP BY v
423+
)
424+
SELECT 'compr' test,
425+
p1.v, compr, sc,
426+
PC_AsText(p1.p) =
427+
PC_AsText(PC_Compress(p1.p, compr,
428+
array_to_string(
429+
array_fill(sc,ARRAY[7]),
430+
','
431+
)
432+
)) ok
433+
FROM p1, ( values
434+
('dimensional','rle'),
435+
('dimensional','zlib'),
436+
('dimensional','sigbits'),
437+
('dimensional','auto'),
438+
('laz', 'null')
439+
) dimcompr(compr,sc)
440+
ORDER BY compr,sc,v;
441+
test | v | compr | sc | ok
442+
-------+----+-------------+---------+----
443+
compr | -7 | dimensional | auto | t
444+
compr | -6 | dimensional | auto | t
445+
compr | -5 | dimensional | auto | t
446+
compr | -4 | dimensional | auto | t
447+
compr | -3 | dimensional | auto | t
448+
compr | -2 | dimensional | auto | t
449+
compr | -1 | dimensional | auto | t
450+
compr | 0 | dimensional | auto | t
451+
compr | 1 | dimensional | auto | t
452+
compr | 2 | dimensional | auto | t
453+
compr | 3 | dimensional | auto | t
454+
compr | 4 | dimensional | auto | t
455+
compr | 5 | dimensional | auto | t
456+
compr | 6 | dimensional | auto | t
457+
compr | 7 | dimensional | auto | t
458+
compr | -7 | dimensional | rle | t
459+
compr | -6 | dimensional | rle | t
460+
compr | -5 | dimensional | rle | t
461+
compr | -4 | dimensional | rle | t
462+
compr | -3 | dimensional | rle | t
463+
compr | -2 | dimensional | rle | t
464+
compr | -1 | dimensional | rle | t
465+
compr | 0 | dimensional | rle | t
466+
compr | 1 | dimensional | rle | t
467+
compr | 2 | dimensional | rle | t
468+
compr | 3 | dimensional | rle | t
469+
compr | 4 | dimensional | rle | t
470+
compr | 5 | dimensional | rle | t
471+
compr | 6 | dimensional | rle | t
472+
compr | 7 | dimensional | rle | t
473+
compr | -7 | dimensional | sigbits | t
474+
compr | -6 | dimensional | sigbits | t
475+
compr | -5 | dimensional | sigbits | t
476+
compr | -4 | dimensional | sigbits | t
477+
compr | -3 | dimensional | sigbits | t
478+
compr | -2 | dimensional | sigbits | t
479+
compr | -1 | dimensional | sigbits | t
480+
compr | 0 | dimensional | sigbits | t
481+
compr | 1 | dimensional | sigbits | t
482+
compr | 2 | dimensional | sigbits | t
483+
compr | 3 | dimensional | sigbits | t
484+
compr | 4 | dimensional | sigbits | t
485+
compr | 5 | dimensional | sigbits | t
486+
compr | 6 | dimensional | sigbits | t
487+
compr | 7 | dimensional | sigbits | t
488+
compr | -7 | dimensional | zlib | t
489+
compr | -6 | dimensional | zlib | t
490+
compr | -5 | dimensional | zlib | t
491+
compr | -4 | dimensional | zlib | t
492+
compr | -3 | dimensional | zlib | t
493+
compr | -2 | dimensional | zlib | t
494+
compr | -1 | dimensional | zlib | t
495+
compr | 0 | dimensional | zlib | t
496+
compr | 1 | dimensional | zlib | t
497+
compr | 2 | dimensional | zlib | t
498+
compr | 3 | dimensional | zlib | t
499+
compr | 4 | dimensional | zlib | t
500+
compr | 5 | dimensional | zlib | t
501+
compr | 6 | dimensional | zlib | t
502+
compr | 7 | dimensional | zlib | t
503+
compr | -7 | laz | null | t
504+
compr | -6 | laz | null | t
505+
compr | -5 | laz | null | t
506+
compr | -4 | laz | null | t
507+
compr | -3 | laz | null | t
508+
compr | -2 | laz | null | t
509+
compr | -1 | laz | null | t
510+
compr | 0 | laz | null | t
511+
compr | 1 | laz | null | t
512+
compr | 2 | laz | null | t
513+
compr | 3 | laz | null | t
514+
compr | 4 | laz | null | t
515+
compr | 5 | laz | null | t
516+
compr | 6 | laz | null | t
517+
compr | 7 | laz | null | t
518+
(75 rows)
519+
376520
TRUNCATE pointcloud_formats;

pgsql/expected/pointcloud.out

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,7 @@ FROM p1, ( values
531531
('dimensional','rle'),
532532
('dimensional','zlib'),
533533
('dimensional','sigbits'),
534-
('dimensional','auto'),
535-
('laz','null')
534+
('dimensional','auto')
536535
) dimcompr(compr,sc)
537536
ORDER BY compr,sc,v;
538537
test | v | compr | sc | ok
@@ -597,22 +596,7 @@ ORDER BY compr,sc,v;
597596
compr | 5 | dimensional | zlib | t
598597
compr | 6 | dimensional | zlib | t
599598
compr | 7 | dimensional | zlib | t
600-
compr | -7 | laz | null | t
601-
compr | -6 | laz | null | t
602-
compr | -5 | laz | null | t
603-
compr | -4 | laz | null | t
604-
compr | -3 | laz | null | t
605-
compr | -2 | laz | null | t
606-
compr | -1 | laz | null | t
607-
compr | 0 | laz | null | t
608-
compr | 1 | laz | null | t
609-
compr | 2 | laz | null | t
610-
compr | 3 | laz | null | t
611-
compr | 4 | laz | null | t
612-
compr | 5 | laz | null | t
613-
compr | 6 | laz | null | t
614-
compr | 7 | laz | null | t
615-
(75 rows)
599+
(60 rows)
616600

617601
SELECT PC_Summary(PC_Compress(PC_Patch(PC_MakePoint(10,ARRAY[1,1,1,1,1,1,1])),
618602
'dimensional'))::json->'compr';

pgsql/sql/pointcloud-laz.sql

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,41 @@ VALUES (5, 0,
3838
<Metadata name="compression">laz</Metadata>
3939
</pc:metadata>
4040
</pc:PointCloudSchema>'
41+
)
42+
,(10, 0, -- All (signed) interpretations, uncompressed
43+
'<?xml version="1.0" encoding="UTF-8"?>
44+
<pc:PointCloudSchema xmlns:pc="http://pointcloud.org/schemas/PC/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
45+
<pc:dimension> <pc:position>1</pc:position> <pc:name>x</pc:name>
46+
<pc:size>1</pc:size> <pc:interpretation>int8_t</pc:interpretation>
47+
<pc:scale>0.01</pc:scale>
48+
</pc:dimension>
49+
<pc:dimension> <pc:position>2</pc:position> <pc:name>y</pc:name>
50+
<pc:size>2</pc:size> <pc:interpretation>int8_t</pc:interpretation>
51+
<pc:scale>0.01</pc:scale>
52+
</pc:dimension>
53+
<pc:dimension> <pc:position>3</pc:position> <pc:name>i2</pc:name>
54+
<pc:size>2</pc:size> <pc:interpretation>int16_t</pc:interpretation>
55+
<pc:scale>0.01</pc:scale>
56+
</pc:dimension>
57+
<pc:dimension> <pc:position>4</pc:position> <pc:name>i4</pc:name>
58+
<pc:size>4</pc:size> <pc:interpretation>int32_t</pc:interpretation>
59+
<pc:scale>0.01</pc:scale>
60+
</pc:dimension>
61+
<pc:dimension> <pc:position>5</pc:position> <pc:name>i8</pc:name>
62+
<pc:size>8</pc:size> <pc:interpretation>int64_t</pc:interpretation>
63+
<pc:scale>0.01</pc:scale>
64+
</pc:dimension>
65+
<pc:dimension> <pc:position>6</pc:position> <pc:name>f4</pc:name>
66+
<pc:size>4</pc:size> <pc:interpretation>float</pc:interpretation>
67+
<pc:scale>0.01</pc:scale>
68+
</pc:dimension>
69+
<pc:dimension> <pc:position>7</pc:position> <pc:name>f8</pc:name>
70+
<pc:size>8</pc:size> <pc:interpretation>double</pc:interpretation>
71+
<pc:scale>0.01</pc:scale>
72+
</pc:dimension>
73+
</pc:PointCloudSchema>'
4174
);
4275

43-
4476
CREATE TABLE IF NOT EXISTS pa_test_laz (
4577
id SERIAL,
4678
pa PCPATCH(5)
@@ -161,4 +193,37 @@ SELECT pc_astext(pc_explode(pa)) FROM pa_test_laz_multiple_dim LIMIT 20;
161193

162194
SELECT pc_astext(PC_PointN(pa, 2)) FROM pa_test_laz;
163195

196+
WITH points AS (
197+
SELECT ARRAY[
198+
(2^08/256.0*v)*0.01, -- int8_t
199+
-(2^08/256.0*v)*0.01, -- int8_t
200+
(2^16/256.0*v)*0.01, -- int16_t
201+
(2^32/256.0*v)*0.01, -- int32_t
202+
(2^64/256.0*v)*0.01, -- int64_t
203+
(2^32/256.0*v)*0.01, -- float
204+
(2^64/256.0*v)*0.01 -- double
205+
] a, v/16 v
206+
FROM generate_series(-127,127,4) v
207+
), p1 AS (
208+
SELECT v, PC_Patch(PC_MakePoint(10, a)) p from points -- uncompressed
209+
GROUP BY v
210+
)
211+
SELECT 'compr' test,
212+
p1.v, compr, sc,
213+
PC_AsText(p1.p) =
214+
PC_AsText(PC_Compress(p1.p, compr,
215+
array_to_string(
216+
array_fill(sc,ARRAY[7]),
217+
','
218+
)
219+
)) ok
220+
FROM p1, ( values
221+
('dimensional','rle'),
222+
('dimensional','zlib'),
223+
('dimensional','sigbits'),
224+
('dimensional','auto'),
225+
('laz', 'null')
226+
) dimcompr(compr,sc)
227+
ORDER BY compr,sc,v;
228+
164229
TRUNCATE pointcloud_formats;

pgsql/sql/pointcloud.sql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,7 @@ FROM p1, ( values
364364
('dimensional','rle'),
365365
('dimensional','zlib'),
366366
('dimensional','sigbits'),
367-
('dimensional','auto'),
368-
('laz','null')
367+
('dimensional','auto')
369368
) dimcompr(compr,sc)
370369
ORDER BY compr,sc,v;
371370

0 commit comments

Comments
 (0)