54001: statement_too_complex
PostgreSQLO que significa?
O comando é mais complexo do que o PostgreSQL consegue processar; geralmente expressões muito aninhadas ou muitos operadores aninhados fazem a árvore de expressões ultrapassar o limite de pilha do parser/planner. Pertence à Class 54 (program_limit_exceeded).
Por que acontece?
Parênteses/subconsultas aninhadas em excesso ou cadeias de OR/AND; listas WHERE ... IN (...) enormes geradas automaticamente; ou árvores de expressões muito grandes originadas de views recursivas. O limite max_stack_depth é atingido.
Como resolver
Simplifique a consulta: mova listas IN longas para uma tabela temporária ou um conjunto VALUES e faça JOIN com ela; divida expressões aninhadas; revise consultas enormes geradas por ORM. Se for realmente necessário e o limite de pilha do sistema operacional permitir, aumente max_stack_depth com cuidado (por exemplo, SET max_stack_depth = '4MB';), mas mantenha-o abaixo do ulimit do sistema operacional.