as a;
select * from t where a = 0;
ERROR: value "100000000000000000000" is out of range for type integer
Подскажите, почему происходит неявный каст a к инту, а не наоборот, 0 к тексту?
Может в кавычки надо 0 ?
Это понятно. Мне непонятен механизм автокаста, почему именно так? Я ожидал чего-то вроде operator text = integer does not exist
Ну вообще странно по идее должно быть что то типо - ошибка text = integer, неявные преобразования это от лукавого
Потому что в эту базу либо кто-то добавил нестандартных операторов, либо поменял стандартные, либо это вообще не PostgreSQL: https://dbfiddle.uk/2sj_RinC (можете выбрить любую версию и попробовать — поведение всё то же).
Обсуждают сегодня