On 11/30/24 19:58, Tom Lane wrote:
"David G. Johnston" <david.g.johnston@xxxxxxxxx> writes:
Ok, so the error is not emanating from your code but rather the body of the
ll_to_earth function defined in the earthdistance extension.
Yeah. That is
CREATE FUNCTION ll_to_earth(float8, float8)
RETURNS earth
LANGUAGE SQL
IMMUTABLE STRICT
PARALLEL SAFE
AS 'SELECT cube(cube(cube(earth()*cos(radians($1))*cos(radians($2))),earth()*cos(radians($1))*sin(radians($2))),earth()*sin(radians($1)))::earth';
which is problematic: the function calls are not schema-qualified and
there's not a really easy way to fix that. There's work afoot to fix
that [1], but it's not committed yet let alone in any shipping
version. Nonetheless, your best bet for fixing this might be
to install the earthdistance 1.2 files from the latest patchset in
that thread.
regards, tom lane
[1] https://www.postgresql.org/message-id/flat/3395418.1618352794@xxxxxxxxxxxxx
I've applied the following patch to postgres:
https://www.postgresql.org/message-id/attachment/122092/0002-earthdistance-sql-functions.patch
I'm still getting this error:
psql:all.sql:4102: ERROR: type "earth" does not exist
LINE 1: ...ians($1))*sin(radians($2))),earth()*sin(radians($1)))::earth