Why PostGIS sets a max value for SRID IDs?

Darafei "Komяpa" Praliaskouski me at komzpa.net
Mon Oct 27 05:17:38 PDT 2025


Hi,

The technical reason is that SRID gets packed into geometry headers and
there's only 21 bits there for it.
PostGIS reserves the values above 998999 for internal transformation
pipelines that support geography data type
A change to this will require significant redesign in the way PostGIS
handles SRIDs.
If you need this, sharing more information about the actual usage scenarios
will be helpful so a new design can be created.

On Mon, Oct 27, 2025 at 1:46 PM G. Allegri <giohappy at gmail.com> wrote:

> Hello list,
>
> I'm working on two projects where custom CRSs, with custom authorities and
> IDs are provided.
> Both projects use IDs with numbers beyond SRID_USR_MAX=998999 [1], which
> is hardcoded in PostGIS for the spatial_ref_sys id field values.
> I can use the auth_id, of course, but having to reassign an id < 998999 is
> a bit problematic for two reasons:
>
> - I have custom transformation pipelines defined inside the proj.db, where
> the custom IDs are defined for CRSs.
> - other softwares (QGIS, Geoserver) can use the custom IDs but they cannot
> match the geometries SRIDs returned PostGIS
>
> I wonder if there's a technical reason for the SRID_USR_MAX constant, and
> if there's any change to remove it in the future.
> And I wonder if others have faced the problems I'm having due to this, and
> what are the solutions they came up with.
>
> Thanks,
> Giovanni
>
> [1]
> https://github.com/postgis/postgis/blob/5dc95f1bc3047b048128616d4543b603b8bbdca7/configure.ac#L1554
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20251027/c16c2616/attachment.htm>


More information about the postgis-users mailing list