답변:
재미있는 질문! 짧은 대답 : 아니오 .
긴 대답 : 세이브 포인트 목록을 정의하는 기존 방법이없는 것 같습니다. 더 나쁜 것은 PostgreSQL 확장을 만드는 것이 불가능한 것 같습니다. src / backend / access / transam / xact.c 를 보면 RollbackToSavepoint와 같은 기능을 볼 수 있습니다. 언급 한 savepoint "오류 메시지는 xact.c에 정적으로 선언 된 변수 CurrentTransactionState에 의존합니다. 즉, 전역 적으로 확장 코드에 표시되지 않습니다.
이제 서버 측에서 정의 된 저장 점 목록을 생성하기 위해 대담하고 필사적 인 경우 (클라이언트가 기억하는 것과는 대조적으로 ...) xact.c에 도우미 함수를 추가하여 이것을 표시 할 수 있습니다 당신을위한 정보. 실제로 여기에 그러한 패치가 있습니다. 이는 설명을위한 매우 거친 패치이며 저장 점 이름을 전자 메일로 보내면 해당 이름을 텍스트 집합으로 반환해야합니다.
이 기능이 누락 된 이유에 대해서는 서버에서 정의 된 저장 점 목록을 가져와야하는 클라이언트에 대한 사용 사례가 없다고 가정합니다. 고객이이 목록으로 ROLLBACK무엇을합니까? 무작위로 하나만 선택 하면 되나요? ROLLBACK마지막으로 맹목적으로? AFAICT 저장 점은 클라이언트가 정의한 저장 점과 저장 점을 사용하기 위해 저장 한 위치를 클라이언트가 기억하는 경우에만 유용합니다.