Nakaner left a comment (osm2pgsql-dev/osm2pgsql#2498)
> Haven't look at it in detail yet, but ST_SRID(way) is definitely wrong,
> because it hardcodes the geometry column.
Oh, sorry, that `way` should not have made it into the pull request. I pushed a
new commit.
> What happens if table is empty?
If the table is empty, `NULL` are returned by both the old and the new query.
However, if geometries have no SRID set, the `ST_Transform` throws an error:
"ST_Transform: Input geometry has unknown (0) SRID". I pushed a new commit
fixing this.
Old implementation (for empty tables, it does not matter if the geometry column
has an SRID set or not):
```sql
CREATE TABLE test (osm_id BIGINT NOT NULL, geom geometry(Point, 3857));
ANALYZE test;
SELECT ST_XMin(e), ST_YMin(e), ST_XMax(e), ST_YMax(e) FROM
ST_EstimatedExtent('public', 'test', 'geom') AS e; -- NULLs returned
SELECT ST_XMin(e), ST_YMin(e), ST_XMax(e), ST_YMax(e)
FROM ST_Transform(
ST_SetSRID(
ST_EstimatedExtent('public', 'test', 'geom'),
(SELECT ST_SRID(geom) FROM public.test LIMIT 1)
),
3857) e; -- NULLs returned
```
If the SQL query returns `NULL`s, an invalid extent will be returned (and
logged as "Source table empty, nothing to do.").
By looking on the code a second time, I found that an unset SRID will cause an
error. I fixed this in a new commit.
--
Reply to this email directly or view it on GitHub:
https://github.com/osm2pgsql-dev/osm2pgsql/pull/2498#issuecomment-5143838252
You are receiving this because you are subscribed to this thread.
Message ID: <osm2pgsql-dev/osm2pgsql/pull/2498/[email protected]>_______________________________________________
Tile-serving mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/tile-serving