<div dir="ltr">Hi Paul, <div><br></div><div>Unfortunately in case of expression</div><div><br></div><div>(select ST_Union(geom) from table where <some_spatial_thing_that_is_false>)</div><div><br></div><div>there is no way to get EMPTY with correct SRID as output of ST_Union. Currently it returns NULL.</div><div><br></div><div>When such expression is chained further with ST_Difference or ST_Union or ST_Collect, it makes your second argument disappear too, which is not intuitive behavior.</div><div><br></div><div>For our local needs we're already using non-strict wrappers: <a href="https://github.com/gojuno/lostgis/blob/master/sql/functions/ST_Safe_Difference.sql">https://github.com/gojuno/lostgis/blob/master/sql/functions/ST_Safe_Difference.sql</a> - and I think that it would be beneficial for everybody, especially newbies who can't yet grasp NULL, EMPTY and typed EMPTY zen :)</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">пн, 18 дек. 2017 г. в 18:54, Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca">pramsey@cleverelephant.ca</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">EMPTY are capable of carrying SRID around:<br>
<br>
select st_srid(st_setsrid('POINT EMPTY'::geometry, 23));<br>
<br>
The use case you describe is a textbook use of EMPTY, in fact why the<br>
whole gnarly (and deeply inconvenient) concept exists at all.<br>
<br>
P<br>
<br>
<br>
On Mon, Dec 18, 2017 at 7:51 AM, Darafei "Komяpa" Praliaskouski<br>
<<a href="mailto:me@komzpa.net" target="_blank">me@komzpa.net</a>> wrote:<br>
>><br>
>> NULL is for "unknown", while what you're after is an EMPTY<br>
>> How about seeing if ST_Union(geom) can return an EMPTY when passed<br>
>> nothing ?<br>
><br>
><br>
> For EMPTY that is made from ST_Union of zero rows, you don't have a SRID.<br>
> You can in theory allow operations between an empty of different SRID, but<br>
> you cannot store it a column that has a SRID.<br>
><br>
> I think both proposals are good in terms of user experience, but as long as<br>
> SRID is part of geometry body, but not header, your does not seem simple to<br>
> implement.<br>
><br>
> _______________________________________________<br>
> postgis-devel mailing list<br>
> <a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a><br>
> <a href="https://lists.osgeo.org/mailman/listinfo/postgis-devel" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-devel</a><br>
_______________________________________________<br>
postgis-devel mailing list<br>
<a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/postgis-devel" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-devel</a></blockquote></div>