Nie. Przygotowane instrukcje AFAIK są lokalne dla zaplecza; inne backendy po prostu nie wiedzą, że istnieją. Musisz zmodyfikować serwer, aby dodać dodatkową komunikację między procesami, aby umożliwić jednemu backendowi zapytanie innych o przygotowane instrukcje.
Backendy początkowo wydawały się współdzielić te same pg_prepared_statements
schowek na stół, jako:
SELECT relfilenode FROM pg_class WHERE relname = 'pg_prepared_statements';
zwraca ten sam relfilenode z różnych backendów. Byłem zaskoczony, ponieważ wydawało mi się, że przygotowane zestawienia nie znajdują się na dysku. Gdyby były na dysku, myślę, że mógłbyś użyć funkcji z modułu pageinspect contrib czytać surowe krotki lub strony tabeli. Widoczność byłaby problemem; skąd możesz wiedzieć, co było powiązane z martwym/zakończonym backendem, a co było ważne?
Próbowałem tego i odkryłem, że pg_prepared_statements
to właściwie widok:
regress=# SELECT * FROM heap_page_items(get_raw_page('pg_prepared_statements', 1));
ERROR: cannot get raw page from view "pg_prepared_statements"
w szczególności widok na pg_prepared_statement()
funkcjonować. Więc nie ma co sprawdzać. To wewnętrzny backend.
To wydaje się być jednym z tych „… ale dlaczego miałbyś to zrobić?” pytania, co często oznacza, że ktoś pyta o rozwiązanie przewidzieli ich prawdziwy problem, zamiast pytać o ich prawdziwy problem.
Więc:Dlaczego tego chcesz? Jaki jest prawdziwy problem, który próbujesz rozwiązać?