[sisyphus] dspam-mysql vs MySQL server in Sisyphus
Ivan Adzhubey
=?iso-8859-1?q?iadzhubey_=CE=C1_rics=2Ebwh=2Eharvard=2Eedu?=
Вт Янв 30 22:48:09 MSK 2007
On Tuesday 30 January 2007 13:35, Sergey Ivanov wrote:
> Ivan Adzhubey wrote:
> > On Tuesday 30 January 2007 09:24, Sergey Ivanov wrote:
> >> Значит у вас какие-то очень хорошие настройки сервера MySQL, так что он
> >> по дефолту создаёт более правильные таблицы чем у меня. Я специально
> >> попробовал те же самые эксперименты провёл в свежесгенерированном
> >> виртуальном OpenVZ контейнере с сизифом, так что у меня MySQL по
> >> сравнению с Сизифом никак не изменён ни в лучшую ни в худшую сторону.
> >> Что ещё может быть? Сбои оборудования - трудно поверить...
> >> Или MySQL этот вообще работает непредсказуемо?
> >
> > Таблицы тут скорее всего непричем, попробуйте сделать из своей таблице
> > просто select * без where, должны получить все 5 строк. Это какой-то баг
> > в операторе IN, может быть был патч, который действительно выпал из
> > архитектуры x86_64? Надо мейнтейнера дергать, повесьте баг в багзилле. Я
> > попробую разобраться, но у меня нет под рукой Сизифа на x86_64. А у вас
> > x32 Сизиф есть, проверьте?
>
> Иван,
> я вчера ещё пробовал в openvz контейнере, на 64-х битной машине но сам
> контернер 32-х битный. Там результат тот же, выбраны 3 строчки.
> И если я select * то получаю все пять строчек.
> Но похоже это очень распространённый для MySQL баг, я попробовал
> имеющийся под ругой MySQL 5.0.27,REV=2006.12.29 от blastwave на
> Solaris-10 i386 (32 bit) и получил вообще всего одну строчку.
> Ещё эта проблема акитвно обсуждалась в
> http://dspam.nuclearelephant.com/dspam-users/index.html см. тред "MySQL
> 4.1 Bug", они ещё упоминали багзиллу MySQL
> (http://bugs.mysql.com/bug.php?id=24759), но там вроде убедить авторов
> MySQL что это баг - не удалось, зато они наоборот убедили оппонентов что
> так и должно быть.
Почитал - согласен. В багзилле MySQL все объяснено вполне разумно - потеря
точности при конвертации из строки в double. Можно конечно поспорить по
поводу неоднозначного результата конверсии (зависит от платформы и даже от
того, как написано выражение), но это бесполезно - результат такой конверсии
неопределен по определению ;-). Так что это скорее баг dspam, надо либо
убрать одинарные кавычки (зачем они вообще нужны если значение - число?) или
добавить в явном виде оператор CAST(... AS UNSIGNED). Похоже, дергать надо
мейнтейнеров dspam.
--Иван
> Я на всякий случай напишу про это в нашу багзиллу на MySQL-server,
> однако у меня самого нет ни малейшей ясности баг это и если баг то не
> dspam'ский ли.
Подробная информация о списке рассылки Sisyphus