Я не знаю, как сделать расширение перемещаемым. Вопрос: как сделать расширение перемещаемым в другую схему. Ниже описано начало. После этого происходит создание операторов, функций, дисперсий, математического ожидания.
create schema IF NOT EXISTS complex;
--Математическое ожидание
--создание комплексного типа данных
create type complex.complex as (re float, im float);
--создание комплексного типа данных с суммой комплексных чисел и количеством чисел
create type complex.complexSumAndCount as (complexSumVar complex.complex, complexCount integer);
--Создание функции сложения комплексных чисел
CREATE or REPLACE function complex.complexSumFunction (sum complex.complex, complexTempVar complex.complex)
RETURNS complex.complex as
$$
BEGIN
IF sum is not null and complexTempVar is not null then
sum.re := coalesce(sum.re, 0) + coalesce(complexTempVar.re, 0);
sum.im := coalesce(sum.im, 0) + coalesce(complexTempVar.im, 0);
end IF;
RETURN sum;
end;
$$
LANGUAGE plpgSQL;