"Moiseyenko Dmitriy" ...
>
> > > Тут обнаружилась проблема с FB2 RC1.
> >
> >     Это не проблема 2.0 - это родовая травма 3-го диалекта.
> > Добавь в таблицу ключ между 4.5 и 5.0 (например 4.8)
> > и увидишь это в любой версии
>
> Гм, действительно, похожая ошибка есть и в IB 7.1. А хоть известно, когда
> ошибка проявляется, только при использовании в запросе индекса с numeric?


    Если индексируемое поле имеет тип NUMERIC, а сравниваемый с ним
предикат - double или char. В случае с double искомый ключ округляется
до целых математически, в случае с char - вниз. Подробнее я не раскапывал.

    Т.е. в запросе

SELECT * FROM SG_T_PARAM A
 WHERE A.ARG_NAME = 'H' AND A.ARG_VALUE > CAST(4.5 AS DOUBLE PRECISION)

происходит сравнение с 5


    А в запросе

SELECT * FROM SG_T_PARAM A
 WHERE A.ARG_NAME = 'H' AND A.ARG_VALUE <= '4.999'

    сравнение с 4


> Может есть где описание ошибки, чтобы знать что не использовать, чтобы на
> нее не нарваться?

    Не знаю. Явный каст в тип поля должен всегда помогать

> Я, так понимаю, исправлению она не подлежит?

    Не в FB2

-- 
Хорсун Влад


Ответить