[postgis-devel] [PostGIS] #1320: typmod geometry type not changing in before trigger
PostGIS
trac at osgeo.org
Tue Nov 22 17:04:14 PST 2011
#1320: typmod geometry type not changing in before trigger
----------------------+-----------------------------------------------------
Reporter: robe | Owner: jomarlla@…
Type: defect | Status: new
Priority: critical | Milestone: PostGIS 2.0.0
Component: postgis | Version: trunk
Keywords: |
----------------------+-----------------------------------------------------
Description changed by robe:
Old description:
> This is the report posted on:
> http://www.postgis.org/pipermail/postgis-users/2011-November/031493.html
>
> I can reproduce on 8.4 and 9.1 running latest build of PostGIS 2.0.
>
> To reproduce:
>
> {{{
> CREATE TABLE A(gid serial primary key, geom geometry(MultiPolygon,
> 23030));
>
> CREATE OR REPLACE FUNCTION public.triga() RETURNS trigger AS
> $$
> BEGIN
> NEW.geom = ST_GeometryN(New.geom,1);
> RETURN NEW;
> END;
> $$ language plpgsql
> VOLATILE;
>
> CREATE TRIGGER triga_before
> BEFORE INSERT
> ON public.a
> FOR EACH ROW
> EXECUTE PROCEDURE public.triga();
>
> -- this allows a polygon which should not be legal --
> INSERT INTO a(geom) VALUES('SRID=23030;MULTIPOLYGON (((0 0, 10 0, 10 10,
> 0 0)))'::geometry);
>
> -- st_AsText POLYGON((0 0,10 0,10 10,0 0))
> }}}
>
> Seem to have same issue with geography.
New description:
This is the report posted on:
http://www.postgis.org/pipermail/postgis-users/2011-November/031493.html
I can reproduce on 8.4 and 9.1 running latest build of PostGIS 2.0.
To reproduce:
{{{
CREATE TABLE A(gid serial primary key, geom geometry(MultiPolygon,
23030));
CREATE OR REPLACE FUNCTION public.triga() RETURNS trigger AS
$$
BEGIN
NEW.geom = ST_GeometryN(New.geom,1);
RETURN NEW;
END;
$$ language plpgsql
VOLATILE;
CREATE TRIGGER triga_before
BEFORE INSERT
ON public.a
FOR EACH ROW
EXECUTE PROCEDURE public.triga();
-- this allows a polygon which should not be legal --
INSERT INTO a(geom) VALUES('SRID=23030;MULTIPOLYGON (((0 0, 10 0, 10 10, 0
0)))'::geometry);
-- st_AsText POLYGON((0 0,10 0,10 10,0 0))
}}}
Geography works as expected -see next 2 notes.
--
--
Ticket URL: <http://trac.osgeo.org/postgis/ticket/1320#comment:3>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-devel
mailing list