Nix. AFAIK udarbejdede erklæringer er lokale for en backend; andre backends ved bare ikke, at de eksisterer. Du bliver nødt til at ændre serveren for at tilføje yderligere kommunikation mellem processer, så en backend kan spørge de andre om forberedte erklæringer.
Backends så ud til at dele de samme pg_prepared_statements
bordopbevaring, som:
SELECT relfilenode FROM pg_class WHERE relname = 'pg_prepared_statements';
returnerer den samme relfilenode fra forskellige backends. Jeg var overrasket, da jeg troede, at forberedte udtalelser ikke havde nogen tilstedeværelse på disken. Hvis de var på disk, kunne du vel bruge funktionerne fra pageinspect contrib-modulet at læse de rå tupler eller tabelsider. Synlighed ville være et problem; hvordan ville du vide, hvad der var relateret til en død/afsluttet backend, og hvad der var gyldigt?
Jeg prøvede det og fandt pg_prepared_statements
er faktisk en visning:
regress=# SELECT * FROM heap_page_items(get_raw_page('pg_prepared_statements', 1));
ERROR: cannot get raw page from view "pg_prepared_statements"
specifikt en visning af pg_prepared_statement()
fungere. Så der er ikke noget at undersøge. Det er internt i backend.
Dette virker som en af disse "... men hvorfor ville du gøre det?" spørgsmål, hvilket ofte er et tegn på, at nogen spørger om en løsning de har forestillet sig deres virkelige problem, i stedet for at spørge om deres virkelige problem.
Så:Hvorfor vil du det? Hvad er det egentlige problem, du prøver at løse?