ALTER AGGREGATE

ALTER AGGREGATE — 집계 함수 정의 바꾸기

요약

ALTER AGGREGATE 이름 ( 집계함수_식별구문 ) RENAME TO 새이름
ALTER AGGREGATE 이름 ( 집계함수_식별구문 )
                OWNER TO { 새소유주 | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE 이름 ( 집계함수_식별구문 ) SET SCHEMA 새스키마

집계함수_식별구문 자리에는:

* |
[ 인자모드 ] [ 인자이름 ] 인자자료형 [ , ... ] |
[ [ 인자모드 ] [ 인자이름 ] 인자자료형 [ , ... ] ] ORDER BY [ 인자모드 ] [ 인자이름 ] 인자자료형 [ , ... ]

설명

ALTER AGGREGATE 명령은 집계 함수 정의를 바꾼다.

ALTER AGGREGATE 명령은 해당 집계 함수 소유주만 실행할 수 있다. 해당 스키마를 바꾼다면, 명령을 실행하는 사용자가 새 스키마에 대해 CREATE 권한이 있어야 한다. 소유주를 바꾼다면, 명령을 실행하는 사용자는 새 소유주 소속 구성원이어야 하며, 새 소유주는 이 함수의 스키마에 대해서 CREATE 권한이 있어야한다. (새 소유주가 해당 함수를 지우거나, 새로 만들 수 있어야 하기 때문이다. 슈퍼유저는 이런 제약 조건 없이 소유주를 바꿀 수 있다.)

매개 변수

이름

작업 대상 집계 함수 이름(스키마 포함).

인자모드

함수 인자의 종류를 지정한다: IN 또는 VARIADIC. 안 쓰면 기본값인 IN이다.

인자이름

인자 이름. ALTER AGGREGATE 명령에서는 이 인자 이름에 상관 없이 그 인자 자료형만 사용해서, 해당 집계 함수를 찾는다는 것을 알고 있으면 된다.

인자자료형

해당 집계 함수의 입력 인자 자료형 이름. 아무런 입력 자료형을 사용하지 않는 집계 함수인 경우는 이 자리에, * 문자를 지정한다. 정렬된 집합 집계 함수인 경우는 ORDER BY 구문을 포함 해서 해당 함수를 지정한다.

새이름

해당 집계 함수의 새 이름.

새소유주

해당 집계 함수의 새 소유주 이름.

새스키마

해당 집계 함수의 새 스키마 이름.

참고

정렬된 집합 집계 함수를 지정할 때는, 그 함수를 만들 때 정의한 (CREATE AGGREGATE 참조) ORDER BY 구문 그대로 사용하기를 권한다. 한편, ORDER BY 구문을 생략하고, 입력 자료형과 집계용 인자 정의를 같은 인자 목록으로 해서 실행할 수도 있다. 간단한 양식으로, VARIADIC "any" 구문이, 입력 자료형과 집계용 인자 목록에서 둘다 쓰인다면, VARIADIC "any" 내용은 한 번 쓰면 된다.

예제

integer 자료형 대상 myavg 집계 함수 이름을 my_average로 바꾸는 명령:

ALTER AGGREGATE myavg(integer) RENAME TO my_average;

integer 자료형 대상 myavg 집계 함수의 소유주를 joe로 바꾸는 명령:

ALTER AGGREGATE myavg(integer) OWNER TO joe;

float8 자료형 대상, integer 자료형을 집계용 인자로 하는 mypercentile 정렬된 집합 집계 함수의 스키마를 myschema로 바꾸는 명령:

ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;

위 구문과 아래 구문은 같은 일을 한다:

ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;

호환성

ALTER AGGREGATE 구문은 표준 SQL 구문이 아니다.

관련 항목

CREATE AGGREGATE, DROP AGGREGATE