我想将地球数据类型转换为 Postgresql (9.5) 中的 json 数组。
这就是我所拥有的:
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 是基于 cube 模块的,但我假设earth
数据类型是一个真实的数据类型,所以我应该能够转换。
因此,如果上面的代码应该可以工作,那么下面的代码应该可以正常运行。
SELECT ll_to_earth(10.10, 30.01)::JSON
但我得到了错误
ERROR: cannot cast type earth to json LINE 1