PL/Python은 Python 2 및 Python 3 언어 변형을 모두 지원합니다. (PostgreSQL 설치 지침에는 지원되는 Python의 정확한 부 버전에 대한 더 정확한 정보가 포함될 수 있습니다.) Python 2 및 Python 3 언어 변형은 일부 중요한 측면에서 호환되지 않으므로 PL/Python에서는 혼합을 방지하기 위해 다음 이름 지정 및 전환 체계를 사용합니다.
이름이 지정된 PostgreSQL 언어pl토토 베이2u토토 베이 2 언어 변형을 기반으로 PL/토토 베이을 구현합니다.
이름이 지정된 PostgreSQL 언어pl토토 베이3u토토 베이 3 언어 변형을 기반으로 PL/토토 베이을 구현합니다.
이름이 지정된 언어pl토토 베이u현재 Python 2인 기본 Python 언어 변형을 기반으로 PL/Python을 구현합니다. (이 기본값은 로컬 Python 설치가 고려하는 것과 무관합니다.“기본값”예를 들어 무엇을/usr/bin/토토 베이아마도 그럴 것입니다.) Python 커뮤니티의 Python 3으로의 마이그레이션 진행 상황에 따라 먼 미래의 PostgreSQL 릴리스에서는 기본값이 Python 3으로 변경될 것입니다.
이 계획은 다음의 권장사항과 유사합니다.PEP 394이름 지정 및 전환에 관해파이썬명령.
토토 베이 2용 PL/토토 베이, 토토 베이 3 또는 둘 다를 사용할 수 있는지 여부는 빌드 구성이나 설치된 패키지에 따라 다릅니다.
빌드된 변형은 설치 중에 발견된 Python 버전 또는 다음을 사용하여 명시적으로 설정된 버전에 따라 다릅니다.파이썬환경 변수; 참조PostgreSQL : 문서 : 14 : 17.4. 토토 커뮤니티 절차. 한 번의 설치로 두 가지 PL/토토 베이 변형을 모두 사용하려면 소스 트리를 두 번 구성하고 빌드해야 합니다.
이로 인해 다음과 같은 사용 및 마이그레이션 전략이 발생합니다.
기존 사용자와 현재 Python 3에 관심이 없는 사용자는 언어 이름을 사용합니다.pl토토 베이u그리고 가까운 미래에는 아무것도 변경할 필요가 없습니다. 점차적으로 권장됩니다.“미래 보장형”토토 베이 3으로의 최종 마이그레이션을 단순화하기 위해 토토 베이 2.6/2.7로 마이그레이션을 통한 코드.
실제로 많은 PL/토토 베이 함수는 거의 또는 전혀 변경 없이 토토 베이 3으로 마이그레이션됩니다.
Python 2에 크게 의존하는 코드가 있고 코드를 변경할 계획이 없다는 것을 알고 있는 사용자는 다음을 사용할 수 있습니다.pl토토 베이2u언어 이름. 이는 PostgreSQL에 의해 Python 2 지원이 완전히 중단될 때까지 아주 먼 미래에도 계속 작동할 것입니다.
Python 3에 대해 자세히 알고 싶은 사용자는 다음을 사용할 수 있습니다.pl토토 베이3u언어 이름은 오늘날의 기준에 따라 영원히 계속 작동할 것입니다. 먼 미래에 Python 3가 기본값이 되면 그들은 다음을 제거하고 싶을 수도 있습니다.“3”미학적 이유로.
Python-3 전용 운영체제 환경을 구축하려는 무모한 사람들은 다음 내용을 변경할 수 있습니다.pl토토 베이u의 확장 제어 및 작성할 스크립트 파일pl토토 베이u다음과 동등함pl토토 베이3u, 이로 인해 설치가 세계 대부분의 국가와 호환되지 않게 된다는 점을 명심하세요.
문서도 참조하세요파이썬 3.0의 새로운 기능토토 베이 3으로 포팅하는 방법에 대한 자세한 내용은.
동일한 세션에서 토토 베이 2 기반 PL/토토 베이과 토토 베이 3 기반 PL/토토 베이을 사용하는 것은 허용되지 않습니다. 동적 모듈의 기호가 충돌하여 PostgreSQL 서버 프로세스가 충돌할 수 있기 때문입니다. 세션에서 토토 베이 주요 버전이 혼합되는 것을 방지하는 검사가 있으며, 불일치가 감지되면 세션이 중단됩니다. 그러나 별도의 세션에서 동일한 데이터베이스의 PL/토토 베이 변형을 모두 사용할 수 있습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.