Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3.0.1 Invalid data type for negation (minus operator) / 25 сообщений из 29, страница 1 из 2
15.11.2016, 08:25
    #39347231
VerLeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
Привет!

FB 3.0.1 (WI-V6.3.1.32609 Firebird 3.0)

На запрос

Код: plsql
1.
select 1 from TABLE1 where id = - :param



ругается:

expression evaluation not supported.
Invalid data type for negation (minus operator).

поле id в table1 типа integer
Я правильно понимаю, что это косяк в сервере или это какое-то странное новшество в FB 3?
В FB 2.5. это работало.
В FB 3 - помогает cast параметра к integer, но это же какой-то изврат...
...
Рейтинг: 0 / 0
15.11.2016, 09:02
    #39347247
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeonЯ правильно понимаю, что это косяк в сервере
Скорее в голове. Сам параметр (его значение) задавай с нужным знаком.
...
Рейтинг: 0 / 0
15.11.2016, 09:12
    #39347254
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
wadman,

Иногда в одном запросе нужно и положительное и отрицательное значение параметра, но

Код: plsql
1.
select 1 from TABLE1 where id = -1 * :param



должно спасти отца русской демократии (С)
...
Рейтинг: 0 / 0
15.11.2016, 09:19
    #39347266
VerLeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
wadman,

Ну это простой пример, в реальном запросе было так:

where quantity < -:eps and resquantity > :eps

Бывают и более сложные примеры.
...
Рейтинг: 0 / 0
15.11.2016, 09:21
    #39347268
VerLeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
sonkz,
Да извратиться-то можно, с тем же кастом, просто это ставит под вопрос перевод проекта с 2.5. на 3.0. - замаешься теперь такие места искать. А главное зачем - ну явно это неправильная проверка
...
Рейтинг: 0 / 0
15.11.2016, 09:22
    #39347269
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeonБывают и более сложные примеры.
ХП - крутая штука. Как раз для сложных примеров придумано.
...
Рейтинг: 0 / 0
15.11.2016, 09:33
    #39347275
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
wadman, sonkz

Я не вижу причин почему
Код: sql
1.
select 1 from TABLE1 where id = - :param


должно выдавать ошибку

а ведь вопрос был именно в этом, а в том как её обойти
...
Рейтинг: 0 / 0
15.11.2016, 09:34
    #39347276
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeon,

Т.е. в одном запросе нужно значение параметра и результат какой-то его модификации, ну, так и проводи модификацию явно
:param * -1 (от перемены мест сомножителей...)
:param + 1000
:param / 2 и т.д.
сервер против этого возражать не будет и читать будет проще..
...
Рейтинг: 0 / 0
15.11.2016, 09:35
    #39347278
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
m7mа ведь вопрос был именно в этом, а в том как её обойти
Серверу не веришь?
VerLeonexpression evaluation not supported.
Invalid data type for negation (minus operator).
...
Рейтинг: 0 / 0
15.11.2016, 09:39
    #39347283
VerLeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
wadman,

Так FB 2.5 против этого не возражал, с чего вдруг 3.0 стал возражать - вот в чем вопрос. Оснований для этого я не вижу.
...
Рейтинг: 0 / 0
15.11.2016, 09:43
    #39347285
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeonОснований для этого я не вижу.
А основания для перехода с 2.5 на 3 видишь?
...
Рейтинг: 0 / 0
15.11.2016, 09:44
    #39347287
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeon,

я пожалуй воздержусь. Подойдут "отцы" скажут баг это или нет. Хотя можешь сразу запулить в трекер, а там решение вынесут.
...
Рейтинг: 0 / 0
15.11.2016, 09:48
    #39347294
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
wadmanСерверу не веришь?

и причем это.

вопрос то изначальный
Я правильно понимаю, что это косяк в сервере или это какое-то странное новшество в FB 3?
В FB 2.5. это работало.
В FB 3 - помогает cast параметра к integer, но это же какой-то изврат...


и таки да
я не вижу причин для такого поведения сервера
и мне тоже хочется их узнать
хотя вполне возможно что дело не в сервере,
а в "инструменте" которым была попытка выполнить запрос

зы. сам на FB3 не проверял
...
Рейтинг: 0 / 0
15.11.2016, 09:59
    #39347305
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
m7m,

на самом деле в Firebird

проверить можно вот так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
execute block
returns (i int)
as
begin
  for execute statement ('select 1 from rdb$database where 1 = - :id')
      (id := -1)
      into :i
  do suspend;
end



В 2.5 это работает, в 3.0 выдаёт ошибку. Так что пожалуй в трекер. Я конечно не сторонник приписывать минус к параметру, но обратная совместимость нарушена, поэтому склонен считать это багом.
...
Рейтинг: 0 / 0
15.11.2016, 10:20
    #39347321
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
Симонов ДенисХотя можешь сразу запулить в трекер, а там решение вынесут.Поддерживаю
...
Рейтинг: 0 / 0
15.11.2016, 12:06
    #39347389
VerLeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
...
Рейтинг: 0 / 0
15.11.2016, 12:44
    #39347427
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeonОснований для этого я не вижу.
Перечитай Release Note внимательно. Особенно в месте, где говорится про введение типа
параметра SQL_NULL для исправления и оптимизации ошибки в запросе типа "? IS NULL".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2016, 12:57
    #39347443
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
...
Рейтинг: 0 / 0
15.11.2016, 13:32
    #39347499
VerLeon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
Dimitry Sibiryakov,

http://www.firebirdsql.org/refdocs/langrefupd25-sqlnull.html
Ты про это?

Но это было введено в 2.5, а там такой проблемы нет.
Ну и я не понимаю, каким боком это сюда, в этом запросе нет сравнения с NULL
...
Рейтинг: 0 / 0
15.11.2016, 14:13
    #39347559
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeonя не понимаю, каким боком это сюда, в этом запросе нет сравнения с NULL

А какой тип по-твоему, должен сервер выбрать для твоего параметра?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2016, 14:41
    #39347600
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeon, какие люди😀 Переходить на трешку планируете?
...
Рейтинг: 0 / 0
15.11.2016, 20:15
    #39347874
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
Dimitry SibiryakovVerLeonя не понимаю, каким боком это сюда, в этом запросе нет сравнения с NULL

А какой тип по-твоему, должен сервер выбрать для твоего параметра?

да хоть VARCHAR, хоть BLOB

почему сразу NULL виноват, действительно ?
...
Рейтинг: 0 / 0
15.11.2016, 20:44
    #39347901
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
Ariochда хоть VARCHAR, хоть BLOB
К ним унарный минус тоже неприменим.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2016, 21:02
    #39347911
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
VerLeon,

судя по комментарию Адриано это багом не считает.
...
Рейтинг: 0 / 0
15.11.2016, 22:32
    #39347947
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3.0.1 Invalid data type for negation (minus operator)
Симонов Дениссудя по комментарию Адриано это багом не считает.А мы с ним поспорим
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3.0.1 Invalid data type for negation (minus operator) / 25 сообщений из 29, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]