42P18: indeterminate_datatype
PostgreSQL¿Qué significa?
PostgreSQL no pudo inferir por el contexto el tipo de datos de una expresión o parámetro. Se ve sobre todo cuando se usa un marcador sin tipo (como $1) o un NULL sin más, sin ninguna indicación de tipo alrededor.
¿Por qué ocurre?
Parámetros sin tipo en sentencias preparadas; comparaciones en las que ambos lados son indeterminados, como "WHERE $1 = $2"; o uso sin contexto de literales NULL/de array. El planner no puede decidir qué tipo usar.
Cómo solucionarlo
Añada un cast explícito a la expresión indeterminada: $1::text, $1::integer, NULL::date, etc. Por ejemplo: SELECT $1::int + 1; Especifique los tipos de los parámetros del driver/ORM. En comparaciones de columnas, asegúrese de que al menos un lado tenga un tipo conocido.