54001: statement_too_complex
PostgreSQL¿Qué significa?
La sentencia es más compleja de lo que PostgreSQL puede procesar; normalmente, expresiones anidadas muy profundas o muchos operadores anidados hacen que el árbol de expresiones supere el límite de pila del parser/planner. Pertenece a la Class 54 (program_limit_exceeded).
¿Por qué ocurre?
Paréntesis/subconsultas anidadas excesivamente profundas o cadenas OR/AND; enormes listas WHERE ... IN (...) generadas automáticamente; o árboles de expresiones muy grandes derivados de vistas recursivas. Se alcanza el límite max_stack_depth.
Cómo solucionarlo
Simplifique la consulta: mueva las listas IN largas a una tabla temporal o a un conjunto VALUES y combínela con un JOIN; divida las expresiones anidadas; revise las consultas enormes generadas por el ORM. Si es realmente necesario y el límite de pila del SO lo permite, aumente max_stack_depth con cuidado (p. ej., SET max_stack_depth = '4MB';) pero manténgalo por debajo del ulimit del SO.