Вероятно, это не совсем то, что вы ищете, но EXPLAIN поддерживает JSON как тип вывода, который разбивает запрос на его составные части, используя анализатор / планировщик запросов PostgreSQL (некоторые ключи / значениядля краткости опущено):
CREATE TABLE test ( id SERIAL PRIMARY KEY, value TEXT NOT NULL );
EXPLAIN (FORMAT JSON) INSERT INTO test VALUES (1, 'Test');
[
{
"Plan": {
"Node Type": "ModifyTable",
"Operation": "Insert",
"Relation Name": "test",
"Alias": "test"
}
}
]
EXPLAIN (FORMAT JSON) SELECT * FROM test;
[
{
"Plan": {
"Node Type": "Seq Scan",
"Relation Name": "test",
"Alias": "test"
}
}
]
Это, безусловно, сможет рассказать вам обо всех отношениях, используемых в запросе (включая сложные объединения, представления и т. д.).Если вы используете ANALYZE, он сможет сообщить вам количество выходных строк (но не их содержимое).Это не сможет сказать вам входные данные для запроса.