Я хочу привести тип данных земного шара к массиву json в Postgresql (9.5).
Вот что у меня есть:
CREATE OR REPLACE FUNCTION earth_to_json (inpt earth)
RETURNS json AS $$
SELECT json_build_array(latitude(inpt), longitude(inpt))
$$ LANGUAGE SQL;
CREATE CAST (earth AS JSON) WITH FUNCTION earth_to_json(earth) AS IMPLICIT;
При выполнении запроса выше я получаюследующий вывод:
WARNING: cast will be ignored because the source data type is a domain
CREATE CAST
Query returned successfully in 47 msec.
Таким образом, тип данных earth
является доменом, согласно сообщению выше.Я знаю, что earthdistance основана на модуле куба, но я предположил, что тип данных earth
является реальным типом данных, поэтому я должен иметь возможность привести.
Так что, если приведенный выше код должен работать, приведенный ниже код должен работать нормально.
SELECT ll_to_earth(10.10, 30.01)::JSON
Но я получаю ошибку
ERROR: cannot cast type earth to json LINE 1