не Подготвените от AFAIK изрази са локални за бекенда; други бекендове просто не знаят, че съществуват. Ще трябва да модифицирате сървъра, за да добавите допълнителна комуникация между процесите, за да позволите на един бекенд да пита останалите за подготвени отчети.
Първоначално изглежда, че бекендовете споделят едни и същи pg_prepared_statements
таблично съхранение, като:
SELECT relfilenode FROM pg_class WHERE relname = 'pg_prepared_statements';
връща същия relfilenode от различни бекендове. Бях изненадан, тъй като мислех, че подготвените отчети нямат присъствие на диска. Ако бяха на диск, предполагам, че бихте могли да използвате функциите от модула за принос pageinspect за четене на необработените кортежи или страници от таблици. Видимостта би била проблем; как бихте знаели какво е свързано с мъртъв/прекратен бекенд и кое е валидно?
Опитах това и открих, че pg_prepared_statements
всъщност е изглед:
regress=# SELECT * FROM heap_page_items(get_raw_page('pg_prepared_statements', 1));
ERROR: cannot get raw page from view "pg_prepared_statements"
конкретно изглед върху pg_prepared_statement()
функция. Така че няма какво да се проверява. Той е вътрешен в бекенда.
Това изглежда като едно от онези "... но защо бихте направили това?" въпроси, което често е знак, че някой пита за решение те са си представили истинския си проблем, вместо да питат за истинския си проблем.
И така:Защо искате това? Какъв е истинският проблем, който се опитвате да разрешите?