Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме / 16 сообщений из 16, страница 1 из 1
06.03.2014, 22:40:23
    #38580649
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Не знаю, ошибка ли это, но таки спешу доложить...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
recreate table tmp(id int primary key, x int, y int);
recreate sequence g_tmp;
create descending index tmp_id_desc on tmp(id);
commit;
insert into tmp(id, x) values( gen_id(g_tmp,1), 100);
commit;

set term ^;
create or alter trigger tmp_bi for tmp
active before insert or update position 0 as
begin
  new.id=gen_id(g_tmp,1);
end^

create or alter trigger tmp_bii for tmp
active before insert or update position 1000 as
begin
  if (inserting) then
    new.id=gen_id(g_tmp,1);
  new.y = (select x from tmp where id < new.id order by id desc rows 1  < new.id  );
end^
set term ;^
commit;

Выделенная цветом строка содержит явный бред.
Тем не менее всё компилится "на ура", только в рантайме получаю по лбу (чё-то там про "boolean" :)).

LI-T6.3.0.30889 Firebird 3.0 Alpha 2
...
Рейтинг: 0 / 0
06.03.2014, 23:01:45
    #38580662
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Critical баг, срочно в трекер.

P.S. А если вместо new.id константу подставить - тоже компилится?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.03.2014, 23:17:30
    #38580671
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Гаджимурадов РустамCritical баг, срочно в трекер.Не вижу смайлика. Жжошь ? или на самом деле (и тогда - почему "критикал" ?)Гаджимурадов РустамP.S. А если вместо new.id константу подставить - тоже компилится?Ога. И выдаёт тоже самое при инсерте:
Код: plaintext
1.
2.
Overflow occurred during data type conversion.
conversion error from string "BOOLEAN".
At trigger 'TMP_BII' line: 6, col: 3.
...
Рейтинг: 0 / 0
06.03.2014, 23:33:02
    #38580681
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Таблоид> Не вижу смайлика.

Я сегодня ленивый...


P.S. Проверь на 2.5 ещё интересу для.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.03.2014, 23:36:50
    #38580682
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Ну лишканул кто-то, включив в value ещё и boolean_value_expression...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.03.2014, 23:38:39
    #38580684
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
DS> Ну лишканул кто-то, включив в value ещё и boolean_value_expression...

Это в тройке парсер поломали что ли?

P.S. А кто этот кто-то, Адриано?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.03.2014, 08:48:07
    #38580776
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Dimitry SibiryakovНу лишканул кто-то, включив в value ещё и boolean_value_expression...
с чего бы лишканул? Или, по-твоему, select 1 < 2 from t не должно компилироваться?
...
Рейтинг: 0 / 0
07.03.2014, 12:24:29
    #38581016
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
dimitrс чего бы лишканул? Или, по-твоему, select 1 < 2 from t не должно
компилироваться?
Оно не должно компилироваться там, где ожидается силовое значение. То бишь в сабже и тому
подобных местах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.03.2014, 12:50:34
    #38581057
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
упростил

Код: sql
1.
2.
3.
select *
from tmp
rows false



prepare делает нормально при выполнении даёт указанную выше ошибку.
Кто в трекер?
...
Рейтинг: 0 / 0
07.03.2014, 12:53:58
    #38581059
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Симонов ДенисКто в трекер?
Сначала решите что именно писать в трекер: то, что оно при компиляции допускает не
числовые выражения или то, что в рантайме отсутствует преобразование boolean в integer.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.03.2014, 13:00:35
    #38581067
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Dimitry Sibiryakov,

в RN написано что BOOLEAN не преобразовывается неявно в любой тип. А потому
Dimitry Sibiryakov что оно при компиляции допускает не числовые выражения
...
Рейтинг: 0 / 0
07.03.2014, 13:00:36
    #38581068
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Dimitry SibiryakovОно не должно компилироваться там, где ожидается силовое значение. То бишь в сабже и тому подобных местах.
у нас разрешено неявное преобразование типов. ROWS '1' тоже не должно парситься? Везде можно, а тут нельзя?

сервер честно ругается, что ему на вход подсунули хрень. Но в большинстве случаев опознать хрень он сможет только рантайме и это нормально. В случае именно булевского выражения можно ругаться сразу, но только из-за того, что (до тех пор, пока?) мы не поддерживаем преобразования TRUE/FALSE в 1/0, например. Требовать того же самого в менее очевидных случаях - бред.
...
Рейтинг: 0 / 0
07.03.2014, 13:59:57
    #38581125
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
dimitr(до тех пор, пока?) мы не поддерживаем преобразования TRUE/FALSE в 1/0,
например
Ну тогда хоть из сообщения об ошибке уберите слово "string" и апострофы. Чтобы звучало
вменяемо "conversion error from BOOLEAN". А если добавите "to INTEGER", то это вообще
будет роскошно...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.03.2014, 14:13:04
    #38581797
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Работает даже такое:
Код: sql
1.
2.
select * from rdb$types 
rows (select cast(:N as integer) from rdb$database)


и такое:
Код: sql
1.
2.
3.
select * from rdb$types
order by (select cast(:M as integer) from rdb$database)
rows (select cast(:N as integer) from rdb$database)


Правда во втором случае order by не сортирует...
...
Рейтинг: 0 / 0
08.03.2014, 14:14:54
    #38581800
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
NickDee,

а что удивительного?
...
Рейтинг: 0 / 0
08.03.2014, 14:26:28
    #38581808
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
Симонов Дениса что удивительного?
Тему Таблоида заметил после того, как написал пост...
А вот от order by я ожидал другого поведения :)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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