하나 이상의 토토 베이가 같은 이름으로 정의 될 수 있습니다. 그들이 맡은 주장이 다르면. 다시 말해서, 토토 베이 이름은과부하. 에이 토토 베이는 속성과 같은 이름을 가질 수 있습니다. 경우 복잡한 유형의 토토 베이와 복잡한 유형의 속성은 항상 사용된.
PostgresV7.0, the SQL에 대한 AS 절의 대체 형태토토 베이 생성명령은 SQL 함수를 분해합니다 C 소스 코드의 함수 이름에서 이름. 이것은 이제입니다 기능 과부하를 달성하기위한 선호하는 기술.
C로 작성된 함수의 경우, SQL 이름은토토 베이 만들기정확히 동일해야합니다 C 코드의 기능의 실제 이름 (따라서 합법적이어야합니다. C 토토 베이 이름).
이 제한에 미묘한 의미가 있습니다. 대부분의 운영 체제에서 동적 로딩 루틴은 공유 라이브러리를로드 할 수있게되어 기쁩니다. 충돌 (동일한 이름) 함수 이름을 포함하면 할 수 있습니다 사실은 흥미로운 방식으로 부하를 집어 넣습니다. 예를 들어, 정의하는 경우 동일한 이름을 가진 동적으로로드 된 함수 Postgres에 내장 된 기능, Dec OSF/1 동적 로더는 원인입니다. 포스트 그레스는 Postgres는 기능을 호출합니다. 따라서 기능을 원한다면 다른 아키텍처에 사용되면 과부하 C 기능 이름.
문제를 해결하기위한 영리한 트릭이 있습니다. 설명. SQL 기능을 과부하시키는 데 문제가 없으므로 귀하는 귀하입니다 이름이 다른 C 함수 세트를 정의 한 다음 취하는 동일한 이름의 SQL 기능 포장지 세트를 정의하십시오. 적절한 인수 유형을 유형하고 일치하는 것을 호출합니다. c 기능.
다른 솔루션은 동적 하중을 사용하는 것이 아니라 연결하는 것입니다. 백엔드로의 기능을 정적으로 함유하고 내부로 선언합니다. 기능. 그러면 함수는 모두 고유 한 C 이름을 가져야하지만 그들은 동일한 SQL 이름으로 선언 할 수 있습니다 ( 물론 인수 유형이 다릅니다). 이런 식으로 오버 헤드를 피합니다 SQL 래퍼 함수, 더 많은 비용으로 사용자 정의 백엔드 실행 가능. (이 옵션은 사용할 수 있습니다 이전 버전에는 내부가 필요하기 때문에 버전 6.5 이상 C 코드에서와 SQL에서 동일한 이름을 갖는 함수.)