powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
16 сообщений из 16, страница 1 из 1
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38580649
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, ошибка ли это, но таки спешу доложить...
Код: 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
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38580662
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Critical баг, срочно в трекер.

P.S. А если вместо new.id константу подставить - тоже компилится?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38580671
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам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
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38580681
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид> Не вижу смайлика.

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


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

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

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

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



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

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

сервер честно ругается, что ему на вход подсунули хрень. Но в большинстве случаев опознать хрень он сможет только рантайме и это нормально. В случае именно булевского выражения можно ругаться сразу, но только из-за того, что (до тех пор, пока?) мы не поддерживаем преобразования TRUE/FALSE в 1/0, например. Требовать того же самого в менее очевидных случаях - бред.
...
Рейтинг: 0 / 0
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38581125
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr(до тех пор, пока?) мы не поддерживаем преобразования TRUE/FALSE в 1/0,
например
Ну тогда хоть из сообщения об ошибке уберите слово "string" и апострофы. Чтобы звучало
вменяемо "conversion error from BOOLEAN". А если добавите "to INTEGER", то это вообще
будет роскошно...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38581797
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает даже такое:
Код: 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
Триггер с бредятиной в кляузе rows 1 компилится "на ура", ошибка только в рантайме
    #38581800
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

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


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