-- PostGIS를 signal 스키마에 설치하는 스크립트 -- 10.29.17.90 서버의 mpcdb2 데이터베이스에서 실행 -- 방법 1: signal 스키마에 PostGIS extension 생성 (권장) -- 이미 public에 설치되어 있다면, signal 스키마에 함수들을 복사하는 방식으로 접근 -- 현재 PostGIS 상태 확인 SELECT extname, extversion, nspname FROM pg_extension e JOIN pg_namespace n ON e.extnamespace = n.oid WHERE extname LIKE 'post%'; -- 옵션 1: signal 스키마에 PostGIS 함수 wrapper 생성 -- (public 스키마의 함수를 호출하는 wrapper) CREATE OR REPLACE FUNCTION signal.ST_GeomFromText(text) RETURNS geometry AS $$ SELECT public.ST_GeomFromText($1); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; CREATE OR REPLACE FUNCTION signal.ST_GeomFromText(text, integer) RETURNS geometry AS $$ SELECT public.ST_GeomFromText($1, $2); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; CREATE OR REPLACE FUNCTION signal.ST_Length(geometry) RETURNS double precision AS $$ SELECT public.ST_Length($1); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; CREATE OR REPLACE FUNCTION signal.ST_MakeLine(geometry[]) RETURNS geometry AS $$ SELECT public.ST_MakeLine($1); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; -- 자주 사용하는 다른 함수들도 추가 CREATE OR REPLACE FUNCTION signal.ST_X(geometry) RETURNS double precision AS $$ SELECT public.ST_X($1); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; CREATE OR REPLACE FUNCTION signal.ST_Y(geometry) RETURNS double precision AS $$ SELECT public.ST_Y($1); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; CREATE OR REPLACE FUNCTION signal.ST_M(geometry) RETURNS double precision AS $$ SELECT public.ST_M($1); $$ LANGUAGE SQL IMMUTABLE STRICT PARALLEL SAFE; -- 검증 SELECT signal.ST_GeomFromText('POINT(126.0 37.0)', 4326);