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

Reply via email to