PostGIS 3.6.1 - ERROR: operator is not unique: public.geometry = public.geometry

Cedric Duprez cedric.duprez at ign.fr
Thu Jan 8 09:30:24 PST 2026


Well done!

You're right, I changed my search path excluding "public" from it before 
playing the query.
If I add "public" in the search path, it works fine again.

Cedric

Le 08/01/2026 à 18:14, Regina Obe a écrit :
>
> Cedric,
>
> Good news.  I was able to replicate.
>
> I noticed in your output you have the fully qualified type name, which 
> means you don’t have postgis schema in your search path.
>
> To replicate I did:
>
> set search_path='pg_catalog';
>
> SELECT 'POINT EMPTY'::public.geometry = 'POINT EMPTY'::public.geometry;
>
> Gives:
>
> ERROR: operator is not unique: public.geometry = public.geometry LINE 
> 1: SELECT 'POINT EMPTY'::public.geometry = 'POINT EMPTY'::publi... ^
>
> So I’m guessing we have some code in our = path that is not schema 
> qualified.
>
> I’ve ticketed the issue here:
>
> https://trac.osgeo.org/postgis/ticket/6033
>
> Paul,
>
> Can you confirm you can replicate by changing your search_path?
>
> *From:*Cedric Duprez <cedric.duprez at ign.fr>
> *Sent:* Thursday, January 8, 2026 12:05 PM
> *To:* Regina Obe <lr at pcorp.us>; 'Paul Ramsey' <pramsey at cleverelephant.ca>
> *Cc:* postgis-users at lists.osgeo.org
> *Subject:* Re: PostGIS 3.6.1 - ERROR: operator is not unique: 
> public.geometry = public.geometry
>
> I get two lines with the following query:
>
> SELECT oprcode, oprleft::regtype, oprright::regtype
> FROM pg_catalog.pg_operator
> WHERE oprname = '=' AND oprleft::regtype::text IN('public.geometry', 
> 'public.geography')
> ORDER BY oprleft, oprright;
>
> Query result:
>
> oprcode            |oprleft         |oprright
> -------------------+----------------+----------------
> public.geometry_eq |public.geometry |public.geometry
> public.geography_eq|public.geography|public.geography
>
> Extensions are :
>
> extname           |extversion
> ------------------+----------
> plpgsql           |1.0
> ogr_fdw           |1.1
> plr               |8.4.8.2
> pg_stat_statements|1.11
> pgcrypto          |1.3
> tablefunc         |1.0
> postgis_raster    |3.6.1
> postgis           |3.6.1
>
> Le 08/01/2026 à 17:58, Regina Obe a écrit :
>
>     I can’t replicate on my PostgreSQL 17.7 either even with upgrading
>     from PostGIS 3.5.3 to 3.6.1
>
>     PostgreSQL 17.7 on x86_64-windows, compiled by msvc-19.44.35221,
>     64-bit POSTGIS="3.6.1 3.6.1" [EXTENSION] PGSQL="170"
>     GEOS="3.14.1-CAPI-1.20.5" PROJ="8.2.1 NETWORK_ENABLED=OFF
>     URL_ENDPOINT=https://cdn.proj.org
>     USER_WRITABLE_DIRECTORY=C:\Windows\ServiceProfiles\NetworkService\AppData\Local/proj
>     <file:///C:/Windows/ServiceProfiles/NetworkService/AppData/Local/proj>
>     DATABASE_PATH=C:\Program <file:///C:/Program>
>     Files\PostgreSQL\18\share\contrib\postgis-3.6\proj\proj.db"
>     (compiled against PROJ 8.2.1) LIBXML="2.12.5" LIBJSON="0.12"
>     LIBPROTOBUF="1.2.1" WAGYU="0.5.0 (Internal)"
>
>     Perhaps you are having a conflict with another extension or it’s
>     issue with upgrade from earlier.  I recall we did have to fix an
>     issue with =
>
>     Can you show what the below queries output:
>
>     SELECT oprcode, oprleft::regtype, oprright::regtype
>
>     FROM pg_catalog.pg_operator
>
>     WHERE oprname = '=' AND oprleft::regtype::text IN('geometry',
>     'geography')
>
>     ORDER BY oprleft, oprright;
>
>     Should be:
>
>        oprcode    |  oprleft  | oprright
>
>     --------------+-----------+-----------
>
>     geometry_eq  | geometry  | geometry
>
>     geography_eq | geography | geography
>
>     (2 rows)
>
>     SELECT  extname, extversion FROM pg_catalog.pg_extension;
>
>     *From:*Paul Ramsey via postgis-users
>     <postgis-users at lists.osgeo.org>
>     <mailto:postgis-users at lists.osgeo.org>
>     *Sent:* Thursday, January 8, 2026 11:26 AM
>     *To:* Cedric Duprez <cedric.duprez at ign.fr>
>     <mailto:cedric.duprez at ign.fr>
>     *Cc:* postgis-users at lists.osgeo.org
>     *Subject:* Re: PostGIS 3.6.1 - ERROR: operator is not unique:
>     public.geometry = public.geometry
>
>     This is odd, I am not able to replicate...
>
>     --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>      POSTGIS="3.6.1dev 3.6.0-6-gdb18a9a49" PGSQL="180"
>     GEOS="3.15.0dev-CAPI-1.21.0" PROJ="9.3.0 NETWORK_ENABLED=ON
>     URL_ENDPOINT=https://cdn.proj.org
>     USER_WRITABLE_DIRECTORY=/Users/pramsey/Library/Application
>     Support/proj DATABASE_PATH=/usr/local/share/proj/proj.db"
>     (compiled against PROJ 9.3.0) LIBXML="2.9.13" LIBJSON="0.17"
>     LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)"
>     (1 row)
>
>     postgis_reg=# SELECT 'POINT EMPTY'::public.geometry = 'POINT
>     EMPTY'::public.geometry;
>      ?column?
>     ----------
>      t
>     (1 row)
>
>     Is this a database that has gone through upgrade stages, or a
>     blank fresh database?
>
>     P
>
>     On Thu, Jan 8, 2026 at 8:21 AM Cedric Duprez
>     <cedric.duprez at ign.fr> wrote:
>
>         Hi all,
>
>         I'm facing a potential bug with PostGIS 3.6.1 on PostgreSQL 17.7.
>         Here is what I get with postgis_full_version() :
>         POSTGIS="3.6.1 f533623" [EXTENSION] PGSQL="170"
>         GEOS="3.12.1-CAPI-1.18.1" PROJ="9.4.0 NETWORK_ENABLED=OFF
>         URL_ENDPOINT=https://cdn.proj.org
>         USER_WRITABLE_DIRECTORY=/tmp/proj
>         DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ
>         9.4.0) GDAL="GDAL 3.8.4, released 2024/02/08" LIBXML="2.9.14"
>         LIBJSON="0.17" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)" RASTER
>
>         When I execute this query:
>         SELECT 'POINT EMPTY'::public.geometry = 'POINT
>         EMPTY'::public.geometry;
>         I get the following error:
>         ERROR: operator is not unique: public.geometry = public.geometry
>
>         It seems to be a regression, since I didn't have this error on
>         previous versions of PostGIS (3.5).
>
>         How can this problem be solved?
>         Thanks in advance for you help,
>
>         Cedric
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20260108/363bb1cc/attachment.htm>


More information about the postgis-users mailing list