Opened 12 years ago
Closed 12 years ago
#2060 closed defect (fixed)
GetTopoGeomElementArray: ERROR: value for domain topoelementarray violates check constraint "dimensions"
Reported by: | strk | Owned by: | strk |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 2.0.2 |
Component: | topology | Version: | 2.0.x |
Keywords: | history | Cc: |
Description
I created a TopoGeometry with this call:
insert into city_data.fph (g) select CreateTopoGeom('city_data', 3, 3, '{{1,1},{2,1}}');
Which produced these records in the relation table:
topogeo_id | layer_id | element_id | element_type ------------+----------+------------+-------------- 4 | 3 | 1 | 1 4 | 3 | 2 | 1 (2 rows)
But then GetTopoGeomElementArray can't get its result:
select GetTopoGeomElementArray(g) from city_data.fp; ERROR: value for domain topoelementarray violates check constraint "dimensions"
There's indeed some confusion between what's an id and what's a type, I suspect the function isn't well tested for that...
Change History (5)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
OOps, there is:
CREATE DOMAIN topology.TopoElement AS integer[] CONSTRAINT DIMENSIONS CHECK ( array_upper(VALUE, 2) IS NULL AND array_upper(VALUE, 1) = 2 );
comment:3 by , 12 years ago
Sorry, the above is for "TopoElement", while for "TopoElementArray" it is:
CREATE DOMAIN topology.TopoElementArray AS integer[][] CONSTRAINT DIMENSIONS CHECK ( array_upper(VALUE, 2) IS NOT NULL AND array_upper(VALUE, 2) = 2 AND array_upper(VALUE, 3) IS NULL );
comment:4 by , 12 years ago
Guess what it is ? You can't have a NULL value !
Boils down to this:
SELECT NULL::topology.TopoElementArray;
Which gives you the error:
ERROR: value for domain topoelementarray violates check constraint "dimensions"
And this is as of:
PostgreSQL 9.1.6 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
comment:5 by , 12 years ago
Keywords: | history added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
But it's interesting that there's no "dimensions" constraint in topology.sql, so maybe I'm using an old installation ?!