powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / for select и coalesce
47 сообщений из 47, показаны все 2 страниц
for select и coalesce
    #35484380
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем! Хочу уточнить у вас поведение следующего блока:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  TMP_INDEX   = NULL;
  FOR
    SELECT COALESCE(K.OBJECT_INDEX, :TMP_INDEX)
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END

Здесь в COALESCE(K.OBJECT_INDEX, :TMP_INDEX) новое :TMP_INDEX подставляется на каждом шаге итерации for select.

Такое поведение и задумано, или это баг?

Или это равнозначно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  FOR
    SELECT COALESCE(K.OBJECT_INDEX, NULL)
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END
...
Рейтинг: 0 / 0
for select и coalesce
    #35484396
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни чё не понял...
Объясни что, хочеш сделать?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484399
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlokНи чё не понял...
Объясни что, хочеш сделать?

Этот блок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  TMP_INDEX   = NULL;
  FOR
    SELECT COALESCE(K.OBJECT_INDEX, :TMP_INDEX)
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END
равнозначен этому
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  FOR
    SELECT COALESCE(K.OBJECT_INDEX, NULL)
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END

?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484417
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Второй вообще смысла не имеет.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484421
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее не имеет смысла конструкция
Код: plaintext
COALESCE(K.OBJECT_INDEX, NULL)
...
Рейтинг: 0 / 0
for select и coalesce
    #35484426
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvicВернее не имеет смысла конструкция
Код: plaintext
COALESCE(K.OBJECT_INDEX, NULL)


Я про смысл ничего не спрашивал. Я спросил, равнозначны ли конструкции:
Этот блок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  TMP_INDEX   =  10 ;
  FOR
    SELECT COALESCE(K.OBJECT_INDEX, :TMP_INDEX)
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END

равнозначен этому
Код: plaintext
1.
2.
3.
4.
5.
6.
  FOR
    SELECT COALESCE(K.OBJECT_INDEX,  10 )
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END

?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484434
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет не идентичны
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  TMP_INDEX   = NULL;
  FOR
    SELECT COALESCE(K.OBJECT_INDEX, :TMP_INDEX)
    FROM ...
    INTO :TMP_INDEX
  DO BEGIN

  END
После первой итерации в которой K.OBJECT_INDEX не нулл
п переменную
Код: plaintext
TMP_INDEX
будет писано значение,
И конструкция COALESCE(K.OBJECT_INDEX, :TMP_INDEX) не вернёт нулл больше ни когда.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484439
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты это... по утру такими извратами не занимайся.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484440
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__Такое поведение и задумано, или это баг?
вообще-то, задумано. Но, если сильно придираться, то это баг :-)
...
Рейтинг: 0 / 0
for select и coalesce
    #35484443
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlokПосле первой итерации в которой K.OBJECT_INDEX не нулл
п переменную
Код: plaintext
TMP_INDEX
будет писано значение,
И конструкция COALESCE(K.OBJECT_INDEX, :TMP_INDEX) не вернёт нулл больше ни когда.

Так вот я и говорю, что значение COALESCE(K.OBJECT_INDEX, :TMP_INDEX) пересчитывается на каждом шаге итерации for select.

Меня интересует, такое поведение и задумано, или это баг? Если задумано, будет ли оно изменено в последующих версиях на другое?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484451
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пилять.... ушел править код...
...
Рейтинг: 0 / 0
for select и coalesce
    #35484462
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrвообще-то, задумано. Но, если сильно придираться, то это баг :-)

Есть надежда на то, что этот баг останется навсегда?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484508
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если учесть тенденцию на всё более точное соответствие стандарту... могут и исправить.
Я бы на эту фичу не закладывался.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484518
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glok
Если учесть тенденцию на всё более точное соответствие стандарту...

Если учесть, что стандарт вообще не описывает процедурного языка...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
for select и coalesce
    #35484527
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glokмогут и исправить.

Не могут. Слишком многие приложения тогда рассыплются. Представь, что
перестанет работать такое:
Код: plaintext
for select get_id(gen,  1 ) from table...
Точнее не перестанет, а начнёт выдавать константу. А ведь это широко
разрекламированный способ прерывания длинных выборок.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
for select и coalesce
    #35484547
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Ну да есть такое...
Дык, можно закладываться?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484576
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlokДык, можно закладываться?

Лично я бы заложился, поскольку представляю как/почему это работает и
каких изменений может потребовать изменение поведения.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
for select и coalesce
    #35484623
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlokПилять.... ушел править код...
Что-то не нахожу подвоха.
Создал таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ID           NAIM
 1             jkl
 2             <null>
 3             <null>
 4              123 
 5             <null>
 6             <null>
 7             <null>
 8             <null>

процедуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROCEDURE NEW_PROCEDURE 
returns (ttt varchar( 20 ))
as
begin
  for select coalesce(TEST.NAIM, :ttt) as TTT from TEST into :ttt do
  begin
    suspend;
  end
end

запускаю, получаю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TTT
jkl
jkl
jkl
 123 
 123 
 123 
 123 
 123 
Все как и предполагал.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484706
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvic
Что-то не нахожу подвоха.
Создал таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ID           NAIM
 1             jkl
 2             <null>
 3             <null>
 4              123 
 5             <null>
 6             <null>
 7             <null>
 8             <null>

процедуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE NEW_PROCEDURE 
returns (ttt varchar( 20 ))
as
begin
  ttt = 'Ёпрст';
  for select coalesce(TEST.NAIM, :ttt) as TTT from TEST into :ttt do
  begin
    suspend;
  end
end

Подвох предполагать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TTT
jkl
Ёпрст
Ёпрст
 123 
Ёпрст
Ёпрст
Ёпрст
Ёпрст
.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484783
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПодвох предполагать:С какой это радости такое предполагать? for celect - это цикл, ttt или TMP_INDEX у автора - переменная. Если переменной изменили значение в одной итерации то почему она должна в следующей принимать значение, которое ей присвоили до входа в цикл?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484790
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvicЕсли переменной изменили значение в одной итерации то почему она должна в следующей принимать значение, которое ей присвоили до входа в цикл?

Такое поведение - это БАГ.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484815
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__ stelvicЕсли переменной изменили значение в одной итерации то почему она должна в следующей принимать значение, которое ей присвоили до входа в цикл?

Такое поведение - это БАГ.
Хм. Так это у тебя так ведет? А версия какая? Значит, похоже, изменили. Поскольку у меня на 2.1.0.17798 ведет себя иначе.
...
Рейтинг: 0 / 0
for select и coalesce
    #35484821
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvicС какой это радости такое предполагать? for celect - это цикл, ttt или TMP_INDEX у автора - переменная. Если переменной изменили значение в одной итерации то почему она должна в следующей принимать значение, которое ей присвоили до входа в цикл? FOR SELECT можно воспринимать не как цикл, а как курсор, я сделал выборку а потом фетчу записи по одной, с какой стати у меня курсор изменяется из-за изменения переменных?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484827
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimano stelvicС какой это радости такое предполагать? for celect - это цикл, ttt или TMP_INDEX у автора - переменная. Если переменной изменили значение в одной итерации то почему она должна в следующей принимать значение, которое ей присвоили до входа в цикл? FOR SELECT можно воспринимать не как цикл, а как курсор, я сделал выборку а потом фетчу записи по одной, с какой стати у меня курсор изменяется из-за изменения переменных?
Да хоть и курсор. Почему переменные должны зависеть от курсора?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484841
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvicХм. Так это у тебя так ведет? А версия какая? Значит, похоже, изменили. Поскольку у меня на 2.1.0.17798 ведет себя иначе.

Поведение такое, как здесь
...
Рейтинг: 0 / 0
for select и coalesce
    #35484859
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvicДа хоть и курсор. Почему переменные должны зависеть от курсора?
Код: plaintext
FOR SELECT A.QQQ FROM A WHERE A.WWW < :TTT INTO :TTT
Тоже должно менятся на каждую итерацию?
...
Рейтинг: 0 / 0
for select и coalesce
    #35484877
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не путать мухи и котлеты
...
Рейтинг: 0 / 0
for select и coalesce
    #35484912
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimanoТоже должно менятся на каждую итерацию?

Да. Точно так же как и
Код: plaintext
1.
2.
3.
4.
5.
6.
i :=  0 ;
j :=  10 ;
While i < j do
  begin
   Inc(i);
   Inc(j);
  end;

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
for select и coalesce
    #35484932
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimano stelvicДа хоть и курсор. Почему переменные должны зависеть от курсора?
Код: plaintext
FOR SELECT A.QQQ FROM A WHERE A.WWW < :TTT INTO :TTT
Тоже должно менятся на каждую итерацию?Да. TTT - переменная, которая никоим образом не зависит от от конструкции в которой она участвует. Т.е., конечно, зависит - что ей присвоили в ней, то она и содержит.
...
Рейтинг: 0 / 0
for select и coalesce
    #35485096
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
DimanoТоже должно менятся на каждую итерацию?

Да. Точно так же как и
Код: plaintext
1.
2.
3.
4.
5.
6.
i :=  0 ;
j :=  10 ;
While i < j do
  begin
   Inc(i);
   Inc(j);
  end;

на самом деле, не должно. Но ты прав в том, что хрен это исправишь малой кровью.
...
Рейтинг: 0 / 0
for select и coalesce
    #35485208
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторна самом деле, не должно.
Странно, почему?
а в этой конструкции тоже не должно?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare variable i integer;
begin
  i =  0 ;
  for select ... do
  begin
    i = i + 1 ;
  end
end
или в этой?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare variable i integer;
begin
  i =  0 ;
  for select XXX from ... into :i do
  begin
    i = i + 1 ;
  end
end
...
Рейтинг: 0 / 0
for select и coalesce
    #35485232
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уточню свои слова выше. Переменная меняться должна, т.е. INTO ей будет присваивать каждый раз новое значение. Но влиять на результат селекта переменная не должна. Т.е. селект должен работать с ее копией на момент начала выполнения запроса.
...
Рейтинг: 0 / 0
for select и coalesce
    #35485244
Glok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr
Вот они золотые слова...
...
Рейтинг: 0 / 0
for select и coalesce
    #35485281
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну насколько я понимаю в конструкции
Код: plaintext
FOR SELECT A.QQQ FROM A WHERE A.WWW < :TTT INTO :TTT
так и есть. Т.е. сначала по селекту отбирается промежуточный набор данных с условием A.WWW < значения, кот было на тот момент, а потом этот набор перебирается. Или я неправильно понимаю?
...
Рейтинг: 0 / 0
for select и coalesce
    #35485316
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
щас проверил, похоже, неправильно я понимал. Таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ID           NAIM
 1             jkl
 2             <null>
 3             <null>
 4              123 
 5             <null>
 6             <null>
 7             <null>
 8             <null>
процедура:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE NEW_PROCEDURE 
returns (ttt varchar( 20 ))
as
begin
  ttt = '2';
  for select coalesce(TEST.NAIM, :ttt) as TTT from TEST where TEST.NAIM<:ttt into :ttt do
  begin
    suspend;
  end
end
результат:
Код: plaintext
1.
2.
TTT
 111 
...
Рейтинг: 0 / 0
for select и coalesce
    #35485322
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибочка в предыдущем посте.
таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ID           NAIM
 1              111 
 2             <null>
 3             <null>
 4              123 
 5             <null>
 6             <null>
 7             <null>
 8             <null>
...
Рейтинг: 0 / 0
for select и coalesce
    #35485329
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, с функцией между select и into изменения на лету происходят, а с нормальными проверками нет, так что ли? А с какими функциями -- любыми, или только с сабжевой новомодной заменой case?
...
Рейтинг: 0 / 0
for select и coalesce
    #35485358
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chAlxКороче, с функцией между select и into изменения на лету происходят, а с нормальными проверками нет, так что ли? А с какими функциями -- любыми, или только с сабжевой новомодной заменой case?Что-то не понял я вопроса. В примерах автора изменения с переменной происходят в начале каждой итерации. Конструкция into присваивает ей новое значение, зависящее от того, что лежит в поле таблицы и от предыдущего значения переменной.
...
Рейтинг: 0 / 0
for select и coalesce
    #35485436
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поэкспереминтировал поразному, выдаёт также как и в первом случае.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create or alter procedure new_procedure
returns (
    ttt varchar( 20 ))
as
  declare c cursor for (select coalesce(test.naim, :ttt) as ttt from test);
begin
  open c;
  while ( 1  =  1 ) do
  begin
    fetch c into :ttt;
    if (row_count =  0 ) then
      leave;
    suspend;
  end
  close c;
end
Код: plaintext
1.
2.
3.
4.
  for select ttt from (select coalesce(test.naim, :ttt) as ttt from test) into :ttt do
  begin
    suspend;
  end
...
Рейтинг: 0 / 0
for select и coalesce
    #35485489
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvic chAlxКороче, с функцией между select и into изменения на лету происходят, а с нормальными проверками нет, так что ли? А с какими функциями -- любыми, или только с сабжевой новомодной заменой case?Что-то не понял я вопроса. В примерах автора изменения с переменной происходят в начале каждой итерации. Конструкция into присваивает ей новое значение, зависящее от того, что лежит в поле таблицы и от предыдущего значения переменной.

Примеры с функцией coalesce() показывают, что в ней переменная [ошибочно] пересчитывается. Примеры без функции (select id where id > :idmax into :idmax) покажут, что она [традиционно] не пересчитывается. Вопрос в том, где граница у этого поведения: любая ли функция приводит к такому эффекту, или только сабжевая, или вообще не в ней дело..
...
Рейтинг: 0 / 0
for select и coalesce
    #35485509
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimano
Код: plaintext
FOR SELECT A.QQQ FROM A WHERE A.WWW < :TTT INTO :TTT
Тоже должно менятся на каждую итерацию?
Вот ведь, а я думал съязвил...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TID
 1 
 2 
 3 
 4 
 5 
 6 
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create or alter procedure new_procedure
returns (
    ttt integer)
as
begin
 ttt =  1 ;
 for select test.aid +  1  as ttt from test where test.aid <= :ttt into :ttt do
 begin
   suspend;
 end
end
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TTT
 2 
 3 
 4 
 5 
 6 
 7 
Пойдука тоже посмотрю свои процедурки на всякий...
...
Рейтинг: 0 / 0
for select и coalesce
    #35485572
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игры с сортировкой помогают.
Код: plaintext
1.
2.
3.
4.
5.
  ttt = 'qqq';
  for select coalesce(test.naim, :ttt) as ttt from test order by test.naim nulls first into :ttt do
  begin
    suspend;
  end
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TTT
qqq
qqq
qqq
qqq
 111 
 222 
Код: plaintext
1.
2.
3.
4.
5.
 ttt =  1 ;
 for select test.aid +  1  as ttt from test where test.aid <= :ttt order by  1  into :ttt do
 begin
   suspend;
 end
Код: plaintext
1.
2.
TTT
 2 
Хотя в первом случае не по тойже причине что во втором.
...
Рейтинг: 0 / 0
for select и coalesce
    #35485638
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chAlx

Примеры с функцией coalesce() показывают, что в ней переменная [ошибочно] пересчитывается. Примеры без функции (select id where id > :idmax into :idmax) покажут, что она [традиционно] не пересчитывается. Вопрос в том, где граница у этого поведения: любая ли функция приводит к такому эффекту, или только сабжевая, или вообще не в ней дело..

я бы поспорил с ошибочностью этого поведения, думаю кто использует таким образом переменную (первый вариант) прекрасно понимает к чему это может привести, в противном случае использовал бы либо константу либо завел копию. Это чтоб не писать лишнего кода между BEGIN--END, я так понимаю:

Код: plaintext
1.
FOR SELECT a,COALESCE(b,:b) FROM T INTO :a,:b DO
  SUSPEND;
эквивалентно

Код: plaintext
1.
2.
3.
4.
FOR SELECT a,b FROM T INTO :a,:b DO
BEGIN
  IF (b IS NULL) THEN b = old_b ELSE old_b = b;
  SUSPEND;
END

хотя зачем такое может понадобиться я хз
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
for select и coalesce
    #38826818
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrуточню свои слова выше. Переменная меняться должна, т.е. INTO ей будет присваивать каждый раз новое значение. Но влиять на результат селекта переменная не должна. Т.е. селект должен работать с ее копией на момент начала выполнения запроса.

В тройке теперь именно так?
...
Рейтинг: 0 / 0
for select и coalesce
    #38826885
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__В тройке теперь именно так?
проверь
...
Рейтинг: 0 / 0
for select и coalesce
    #38827191
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov Glokмогут и исправить.

Не могут. Слишком многие приложения тогда рассыплются. Представь, что
перестанет работать такое:
Код: sql
1.
for select get_id(gen, 1) from table...


Точнее не перестанет, а начнёт выдавать константу. А ведь это широко
разрекламированный способ прерывания длинных выборок.


В оракле так ( и не только для генераторов, но и для функций (выборки из коллекции) при использовании connect by и level в качестве параметра ), а вообще на мой взгляд FB ведёт себя правильно, разве стабильность курсора имеет отношение к переменным?
...
Рейтинг: 0 / 0
for select и coalesce
    #38827194
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раскопал артефакт...
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / for select и coalesce
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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