On 12/1/24 12:05, PopeRigby wrote:
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
The issue is still this:
SELECT pg_catalog.set_config('search_path', '', false);
in the pg_dumpall output.
As was suggested before change the above to:
SELECT pg_catalog.set_config('search_path', 'public', false);
in the pg_dumpall output file.
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx