Я пытаюсь определить переменную box в функции PostgreSQL. Вот произвольная функция, которую я пробовал, и она не работает:
CREATE OR REPLACE FUNCTION "public"."find_centroid"("argbase_x" int8, "argbase_y" int8, "arg_length" int)
RETURNS TABLE("cent_x" float8, "cent_y" float8) AS $BODY$
DECLARE
edge_x int8;
edge_y int8;
bounds text;
BEGIN
edge_x := "argbase_x" + 5;
edge_y := "argbase_y" + 5;
RETURN QUERY
SELECT sum(location[0])/count("location") as cent_x, sum(location[1])/count("location") as cent_y
from points
WHERE "location" <@ box'(("argbase_x","argbase_y"),("argbase_x"+"arg_length","argbase_y"+"arg_length"))';
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
Проблема заключается в том, как построить окно из аргументов box'(("argbase_x","argbase_y"),("argbase_x"+"arg_length","argbase_y"+"arg_length"))'
Я пробовал различныеметоды, такие как конкатенация строк, например. Но ничего не работает, и я не могу найти какие-либо ресурсы в Интернете, которые предлагают пример того, как объявить или определить геометрическую переменную в функции.