FB 2.5: conversion error

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

FB 2.5: conversion error

Сообщение VerLeon » 20 янв 2009, 12:52

Нарыл вот такой баг:

Сервер: Firebird-2.5.0.22434-0_Win32

Создаем SP:

Код: Выделить всё

create or alter procedure test_procedure (param integer) returns (ret_value integer)
as
begin
  suspend;
end
Выполняем запрос:

Код: Выделить всё

select * from test_procedure ('0')
Получаем:

Код: Выделить всё

Overflow occurred during data type conversion.
conversion error from string "0".
Явный cast в этом случае не помогает. Причем реагирует так только на '0', пробовал другие числа (в виде строк) - правильно работает.
Насколько могу судить, рубится только при передаче параметров в SP, причем если из нее делается селект.
execute procedure test_procedure ('0') - работает нормально. Еще одна странность - если в той же транзакции после ошибки сделать еще раз этот селект - он проходит нормально.

Получал это на снэпшотах: 22434, 22417, 22289
На 21965 все еще хорошо было

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: FB 2.5: conversion error

Сообщение dimitr » 20 янв 2009, 16:17

причем проявляется только на 32-битных сборках. Любопытный баг.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: FB 2.5: conversion error

Сообщение dimitr » 20 янв 2009, 17:54

проверь на завтрашнем снапшоте, пжлст. Должно быть исправлено.

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: FB 2.5: conversion error

Сообщение VerLeon » 21 янв 2009, 13:13

Ага, теперь все хорошо (на билде Firebird-2.5.0.22450-0_Win32)

Правда нарыл еще одну вещь, мне не понятную, в каком-то смысле похожую.
Теперь параметры в in без явного каста передавать нельзя?
Например, вот такой запрос:

Код: Выделить всё

select 1 from rdb$database where rdb$relation_id in (-1, :param)
рубится с ошибкой

Код: Выделить всё

An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Data type unknown.
Может и не баг, тем более что обойти это явным кастом можно, но почему? Тип поля известен... В FB 2.1.1 такое проходило нормально. А в 2.5 не идет начиная по крайней мере начиная с билда 21965 (может и раньше, не смотрел)

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: FB 2.5: conversion error

Сообщение dimitr » 21 янв 2009, 21:04

Исправлено, спасибо.

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: FB 2.5: conversion error

Сообщение VerLeon » 22 янв 2009, 12:13

Да, больше такого нет (на билде Firebird-2.5.0.22471-0_Win32).
На этом я иссяк, больше ничего подозрительного не находится :)
Спасибо за оперативность, нам эти баги реально мешали в разработке.

Ответить