| 롤 토토 : 문서 : 9.5 : 롤 토토 | |||
|---|---|---|---|
| 토토 결과 PostgreSQL : 문서 : 9.5 : 쿼리 언어 (SQL) 기능 | Postgre윈 토토 : 문서 : 9.5 : 윈 토토 확장 | 35장. 확장SQL | 다음 |
인수가 다른 한, 둘 이상의 함수를 동일한 SQL 이름으로 정의할 수 있습니다. 즉, 함수 이름은 다음과 같습니다.과부하됨. 사용 여부에 관계없이 이 배트맨 토토은 일부 사용자가 다른 사용자를 신뢰하지 않는 데이터베이스에서 함수를 호출할 때 보안 예방 조치를 수반합니다. 참조윈 토토 42 |_99. 쿼리가 실행되면 서버는 제공된 인수의 수와 데이터 유형에서 호출할 배트맨 토토를 결정합니다. 오버로딩은 최대 유한 개수까지 가변 개수의 인수를 사용하여 배트맨 토토를 시뮬레이션하는 데에도 사용할 수 있습니다.
오버로드된 함수군을 생성할 때 모호함을 만들지 않도록 주의해야 합니다. 예를 들어, 주어진 함수는 다음과 같습니다:
CREATE FUNCTION 테스트(int, real) 반환 ... CREATE FUNCTION 테스트(smallint, 배정밀도) RETURNS ...
다음과 같은 사소한 입력으로 어떤 함수가 호출될지는 즉시 명확하지 않습니다.테스트(1, 1.5). 현재 구현된 해결 규칙은 다음 항목에 설명되어 있습니다.PostgreSQL : 문서 : 9.5 : 범퍼카 토토 변환, 하지만 이 동작에 미묘하게 의존하는 시스템을 설계하는 것은 현명하지 않습니다.
복합 유형의 단일 인수를 취하는 배트맨 토토는 일반적으로 해당 유형의 속성(필드)과 동일한 이름을 가져서는 안 됩니다. 그것을 기억해내세요속성(테이블)다음과 동등한 것으로 간주됩니다.테이블.속성. 복합 유형의 배트맨 토토와 복합 유형의 속성 사이에 모호성이 있는 경우 해당 속성이 항상 사용됩니다. 배트맨 토토 이름을 스키마로 한정하여 해당 선택을 재정의할 수 있습니다(즉,schema.func(테이블)) 그러나 충돌하는 이름을 선택하지 않음으로써 문제를 피하는 것이 더 좋습니다.
또 다른 충돌 가능성은 가변 배트맨 토토와 비 가변 배트맨 토토 사이에 있습니다. 예를 들어, 둘 다 생성하는 것이 가능합니다.foo(숫자)그리고foo(VARIADIC 숫자[]). 이 경우 다음과 같은 단일 숫자 인수를 제공하는 호출에 어느 것이 일치해야 하는지 불분명합니다.foo(10.1). 규칙은 검색 경로에서 먼저 나타나는 배트맨 토토가 사용되거나 두 배트맨 토토가 동일한 스키마에 있는 경우 가변적이지 않은 배트맨 토토가 선호된다는 것입니다.
C 언어 배트맨 토토를 오버로드할 때 추가 제약 조건이 있습니다. 오버로드된 배트맨 토토 계열에 있는 각 배트맨 토토의 C 이름은 내부 또는 동적으로 로드된 다른 모든 배트맨 토토의 C 이름과 달라야 합니다. 이 규칙을 위반하면 해당 동작은 이식 가능하지 않습니다. 런타임 링커 오류가 발생하거나 배트맨 토토 중 하나가 호출됩니다(일반적으로 내부 배트맨 토토). 의 대체 형식ASSQL에 대한 절배트맨 토토 생성명령은 C 소스 코드의 함수 이름에서 SQL 함수 이름을 분리합니다. 예를 들어:
CREATE FUNCTION 테스트(int) 반환 int
그대로 '파일 이름', 'test_1arg'
언어 C;
CREATE FUNCTION test(int, int) 반환 int
그대로 '파일 이름', 'test_2arg'
언어 C;
여기서 C 배트맨 토토의 이름은 가능한 많은 규칙 중 하나를 반영합니다.
| 토토 결과 PostgreSQL : 문서 : 9.5 : 쿼리 언어 (SQL) 기능 | 롤 토토 : 문서 : 9.5 : 롤 토토 9.5.25 문서화 | PostgreSQL : 문서 : 9.5 : 사설 토토 변동성 범주 |
| 쿼리 언어(SQL) 배트맨 토토 | Postgre윈 토토 : 문서 : 9.5 : 윈 토토 확장 | 배트맨 토토 변동성 카테고리 |