이 섹션에는 영향을 미치는 구성 매개변수가 나열되어 있습니다.PL/펄.
pl사설 토토 사이트.on_init (문자열) 사설 토토 사이트 인터프리터가 사용하도록 특수화되기 전에 처음 초기화될 때 실행될 사설 토토 사이트 코드를 지정합니다.pl사설 토토 사이트또는pl사설 토토 사이트u. 이 코드가 실행되면 SPI 기능을 사용할 수 없습니다. 오류로 인해 코드가 실패하면 인터프리터 초기화가 중단되고 호출 쿼리로 전파되어 현재 트랜잭션이나 하위 트랜잭션이 중단됩니다.
Perl 코드는 단일 문자열로 제한됩니다. 더 긴 코드를 모듈에 배치하고 다음을 통해 로드할 수 있습니다.on_init문자열. 예:
pl사설 토토 사이트.on_init = '"pl사설 토토 사이트init.pl" 필요' pl사설 토토 사이트.on_init = 'lib "/my/app" 사용; MyApp::PgInit 사용;'
다음에 의해 로드된 모든 모듈pl사설 토토 사이트.on_init직접 또는 간접적으로 다음에서 사용할 수 있습니다.pl사설 토토 사이트. 이로 인해 보안 위험이 발생할 수 있습니다. 어떤 모듈이 로드되었는지 확인하려면 다음을 사용할 수 있습니다.
DO 'elog(경고, 조인 ", ", 정렬 키 %INC)' LANGUAGE pl사설 토토 사이트;
다음과 같은 경우 포스트마스터에서 초기화가 발생합니다.pl사설 토토 사이트라이브러리가 다음에 포함됨shared_preload_libraries, 이 경우 포스트마스터를 불안정하게 만들 위험에 대해 특별히 고려해야 합니다. 이 기능을 사용하는 주된 이유는 사설 토토 사이트 모듈이pl사설 토토 사이트.on_init포스트마스터 시작 시에만 로드되어야 하며 개별 데이터베이스 세션에서 오버헤드 로드 없이 즉시 사용할 수 있습니다. 그러나 오버헤드는 데이터베이스 세션에서 사용되는 첫 번째 Perl 인터프리터(PL/PerlU 또는 PL/Perl 함수를 호출하는 첫 번째 SQL 역할의 PL/Perl)에 대해서만 방지된다는 점을 명심하세요. 데이터베이스 세션에서 생성된 추가 Perl 인터프리터는 실행되어야 합니다.pl사설 토토 사이트.on_init새로웠어요. 또한 Windows에서는 포스트마스터 프로세스에서 생성된 사설 토토 사이트 인터프리터가 하위 프로세스로 전파되지 않으므로 사전 로드로 인한 비용 절감 효과가 전혀 없습니다.
이 매개변수는 다음에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령줄에서.
pl사설 토토 사이트.on_pl사설 토토 사이트_init (문자열) pl사설 토토 사이트.on_pl사설 토토 사이트u_init (문자열) 이 매개변수는 사설 토토 사이트 인터프리터가 특수화될 때 실행될 사설 토토 사이트 코드를 지정합니다.pl사설 토토 사이트또는pl사설 토토 사이트u각각. 이는 PL/Perl 또는 PL/PerlU 함수가 데이터베이스 세션에서 처음 실행될 때 또는 다른 언어가 호출되거나 PL/Perl 함수가 새 SQL 역할에 의해 호출되어 추가 인터프리터를 생성해야 할 때 발생합니다. 이는 다음의 초기화를 따릅니다.pl사설 토토 사이트.on_init. 이 코드가 실행되면 SPI 기능을 사용할 수 없습니다. 사설 토토 사이트 코드는pl사설 토토 사이트.on_pl사설 토토 사이트_init다음 이후에 실행됨“잠금 중”통역사이므로 신뢰할 수 있는 작업만 수행할 수 있습니다.
코드가 오류로 인해 실패하면 초기화가 중단되고 호출 쿼리로 전파되어 현재 트랜잭션이나 하위 트랜잭션이 중단됩니다. Perl 내에서 이미 수행된 작업은 취소되지 않습니다. 그러나 해당 통역사는 다시 사용되지 않습니다. 언어가 다시 사용되면 새로운 Perl 인터프리터 내에서 초기화가 다시 시도됩니다.
수퍼유저만이 이 설정을 변경할 수 있습니다. 이러한 설정은 세션 내에서 변경될 수 있지만 이러한 변경 사항은 이미 기능을 실행하는 데 사용된 사설 토토 사이트 인터프리터에는 영향을 미치지 않습니다.
pl사설 토토 사이트.use_strict (부울) true로 설정되면 PL/Perl 함수의 후속 컴파일에는 다음이 포함됩니다.엄격프라그마가 활성화되었습니다. 이 매개변수는 현재 세션에서 이미 컴파일된 함수에 영향을 주지 않습니다.
다음 기능은 현재 PL/Perl에 없지만 도움이 될 것입니다.
PL/사설 토토 사이트 함수는 서로 직접 호출할 수 없습니다.
SPI는 아직 완전히 구현되지 않았습니다.
다음을 사용하여 매우 큰 데이터 세트를 가져오는 경우spi_exec_query, 이 모든 것이 메모리에 저장된다는 점에 유의하세요. 다음을 사용하여 이를 방지할 수 있습니다.spi_query/spi_fetchrow앞서 설명한 대로.
집합 반환 함수가 다음을 통해 대규모 행 집합을 PostgreSQL로 다시 전달하는 경우 비슷한 문제가 발생합니다.반환. 대신에를 사용하여 이 문제를 피할 수도 있습니다.return_next이전에 표시된 대로 반환된 각 행에 대해.
세션이 치명적인 오류로 인한 것이 아닌 정상적으로 종료되는 경우 어떠한 경우에도END정의된 블록이 실행됩니다. 현재 다른 작업은 수행되지 않습니다. 특히 파일 핸들은 자동으로 플러시되지 않으며 객체는 자동으로 삭제되지 않습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.