42P18: indeterminate_datatype
PostgreSQLNe demek?
PostgreSQL, bir ifadenin veya parametrenin veri tipini bağlamdan çıkaramadı. En sık, tipi belirsiz bir yer tutucu ($1 gibi) ya da tek başına NULL kullanıldığında ve etrafında tip ipucu olmadığında görülür.
Neden olur?
Hazırlanmış ifadelerde tipi belirtilmemiş parametreler; "WHERE $1 = $2" gibi her iki tarafı da belirsiz karşılaştırmalar; ya da NULL/dizi literallerinin bağlamsız kullanımı. Planlayıcı hangi tipin kullanılacağına karar veremez.
Nasıl çözülür?
Belirsiz ifadeye açık tip dönüşümü (cast) ekleyin: $1::text, $1::integer, NULL::date gibi. Örneğin: SELECT $1::int + 1; Sürücü/ORM parametrelerinde tipleri belirtin. Sütun karşılaştırmalarında en az bir tarafın bilinen tipte olmasını sağlayın.