이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 36.6. 토토 커뮤니티 과부하버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

35.5. 배트맨 토토 과부하

인수가 다르면 하나 이상의 함수를 동일한 SQL 이름으로 정의 할 수 있습니다. 다시 말해, 함수 이름은과부하. 사용하든 아니든,이 배트맨 토토은 일부 사용자가 다른 사용자를 불신하는 데이터베이스에서 배트맨 토토을 호출 할 때 보안 예방 조치를 수반합니다. 보다윈 토토 42 |_99. 쿼리가 실행되면 서버는 데이터 유형에서 호출 할 배트맨 토토과 제공된 인수의 수를 결정합니다. 오버로드는 또한 가변적 수의 인수로 배트맨 토토을 한정 최대 수의 최대 수로 시뮬레이션하는 데 사용될 수 있습니다.

과부하 된 기능의 패밀리를 만들 때 모호성을 만들지 않도록주의해야합니다. 예를 들어 기능이 주어지면 :

배트맨 토토 테스트 생성 (int, real) 반환 ...
배트맨 토토 테스트 생성 (Smallint, Double Precision) 반환 ...

어떤 사소한 입력으로 어떤 배트맨 토토을 호출 할 것인지 즉시 명확하지 않습니다.테스트 (1, 1.5). 현재 구현 된 해상도 규칙은에 설명되어 있습니다.PostgreSQL : 문서 : 9.5 : 범퍼카 토토 변환, 그러나이 행동에 미묘하게 의존하는 시스템을 설계하는 것은 현명하지 않습니다.

복합 유형의 단일 인수를 취하는 함수는 일반적으로 해당 유형의 속성 (필드)과 동일한 이름을 가지지 않아야합니다. 그 기억속성 (표)와 동등한 것으로 간주됩니다table.attribute. 복합 유형의 함수와 복합 유형의 속성 사이에 모호성이있는 경우 항상 속성이 사용됩니다. Schema-Qualify를 통해 해당 선택을 무시할 수 있습니다 (즉,schema.func (표)) 그러나 상충되는 이름을 선택하지 않음으로써 문제를 피하는 것이 좋습니다.

또 다른 가능한 충돌은 변수와 비 전환 배트맨 토토 사이의 것입니다. 예를 들어, 둘 다를 만들 수 있습니다foo (숫자)foo (variadic numeric []). 이 경우 어떤 것이와 같은 단일 숫자 인수를 제공하는 통화와 일치 해야하는지 확실하지 않습니다.foo (10.1). 규칙은 검색 경로에서 앞부분에서 나타나는 배트맨 토토이 사용되거나 두 함수가 동일한 스키마에 있으면 비 전환이 선호되는 것입니다..

c-language 함수를 과부하시킬 때 추가 제약이 있습니다. 과부하 된 함수 패밀리의 각 함수의 C 이름은 내부 또는 동적으로로드 된 다른 모든 함수의 C 이름과 달라야합니다. 이 규칙이 위반되면 동작은 휴대 할 수 없습니다. 런타임 링커 오류가 발생하거나 함수 중 하나가 호출됩니다 (일반적으로 내부). 대체 형태의asSQL 조항배트맨 토토 만들기명령은 C 소스 코드의 함수 이름에서 SQL 함수 이름을 분해합니다. 예를 들어:

배트맨 토토 테스트 생성 (int) int
    처럼 'filename','test_1arg '
    언어 C;
배트맨 토토 테스트를 작성 (int, int) int를 반환합니다
    처럼 'filename','test_2arg '
    언어 C;

여기서 C 함수의 이름은 가능한 많은 규칙 중 하나를 반영합니다.