powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB4.0 Проблемы совместимости
38 сообщений из 38, показаны все 2 страниц
FB4.0 Проблемы совместимости
    #40074780
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил сегодня релиз 4.0, возникла проблема с генератором.
Не уверен, но вроде бы на релиз-кандидатах я этого не замечал.

Есть генератор, используемый для хранения версии БД

Обновление версии провожу так:
Код: sql
1.
ALTER SEQUENCE GEN_VERSION RESTART WITH 21060100;


Проверку текущей версии
Код: sql
1.
select gen_id(GEN_VERSION, 0) from rdb$database


На всех предыдущих версиях результат был 21060100, а на 4.0.0 - 21060099
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074786
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийНе уверен, но вроде бы на релиз-кандидатах я этого не замечал.

Результат багфикса https://github.com/FirebirdSQL/firebird/issues/6334
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074789
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Значит я "размочил" релиз :)
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074824
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

раньше 3-4 минорных релизов юзать по-настоящему страшно :)
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074856
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док
Шавлюк Евгений,

раньше 3-4 минорных релизов юзать по-настоящему страшно :)

А после 34...43 релизов как ты FB4.0 использовать собрался?
"Новый архиватор, отлично упаковывает, функционал распаковки возможно, будет доступен позднее." - (с).
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074877
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений> Значит я "размочил" релиз :)

С почином. :)

P.S. А ты что, везде перешёл на
сиквенсы вместо генераторов?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074878
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

а какая разница? Слова SEQUENCE и GENERATOR просто синонимы.
Там разница только для оператора SET GENERATOR. В остальных случаях они взаимозаменяемы
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074890
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Гаджимурадов Рустам,

а какая разница? Слова SEQUENCE и GENERATOR просто синонимы.
Там разница только для оператора SET GENERATOR. В остальных случаях они взаимозаменяемы

Есть еще NEXT VALUE FOR sequence-name вместо GEN_ID( generator-name, 1 ).
И даже пишут на офсайте, что
is the recommended syntax from Firebird 2.0 onward.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074894
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> а какая разница?

Это серьёзный вопрос или шутка?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074896
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более, что они (Set+GenId vs NextValue+Restart) вовсе не эквивалентны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40074908
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
А ты что, везде перешёл на
сиквенсы вместо генераторов?


В большинстве мест (триггеры) я использую GEN_ID(GENERATOR_NAME, 1)

ALTER SEQUENCE, только для хранения версии
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075252
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправьте, пожалуйста, кто-нибудь этот баг в трекер.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075256
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

какой баг ?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075257
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений
На всех предыдущих версиях результат был 21060100, а на 4.0.0 - 21060099

Это разве не баг?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075258
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока буду сюда в этот топик складывать проблемные места

Есть вот такая процедура

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create or alter procedure TEST (
    N integer,
    V integer)
as
declare variable nums varchar(16) = '[-+]?[0-9]{1,10}';
declare variable b boolean;
begin
  while (n > 0) do
  begin
    if (v = 1) then
      b = '5' similar to nums;
    else if (v = 2) then
      b = '5' similar to '[-+]?[0-9]{1,10}';
    n = n - 1;
  end
end



И вызов соответственно:
Код: sql
1.
execute procedure test(1000000, 1)


На fb4.0 у меня выполнение занимает около 1 минуты (!!!!), на fb3.0 - ~4 секунды

Код: sql
1.
execute procedure test(1000000, 2)


На fb4.0 - 1 секунда , на fb3.0 - ~1.5 секунды (тут fb4.0 выигрывает)
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075262
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это разве не баг?
тынц в релизные ноты
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075267
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrтынц в релизные ноты
учудили какой-то логический бред.
Если
"Then a sequence with starting value = 100 and increment = 10 has its first NEXT VALUE equal to 100 now, while it was 110 before."
еще норм, то
"Likewise, this sequence has its first GEN_ID(SEQ, 1) equal to 91 now, while it was 101 before."
это ни в какие ворота.

Хотя, вообще-то "next value" это "следующее значение", и при starting value (начальном значении) и инкременте = 10 "следующее значение" должно быть 110, а не 100.
Кто там вас запутал?

p.s. ну хорошо, пусть первый икремент начинается со стартового значения. Но "first GEN_ID(SEQ, 1) equal to 91 now" - это вообще что за ахинея?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075271
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений
Шавлюк Евгений
На всех предыдущих версиях результат был 21060100, а на 4.0.0 - 21060099

Это разве не баг?
Тебе же показали ссылку на трекер - старое поведение не соотвествует стандарту и его исправили.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075272
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений
На fb4.0 у меня выполнение занимает около 1 минуты (!!!!), на fb3.0 - ~4 секунды
Реализация similar to была значительно изменена, и в основном новая (основана на библиотеке RE2) работает гораздо лучше старой (самописной).

PS Каким образом это связано с проблемами совместимости (см subj) ? ;)
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075273
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю,

а сам пример - хороший, буду разбираться, спасибо ;)
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075319
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
старое поведение не соотвествует стандарту и его исправили.

Надеюсь в gen_id осталось прежнее поведение?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075323
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Хотя, вообще-то "next value" это "следующее значение", и при starting value (начальном значении) и инкременте = 10 "следующее значение" должно быть 110, а не 100.

starting value это не начальное значение, а первое сгенеренное с помощью NEXT VALUE FOR для заданного в сиквенсе инкремента. Поэтому начальное значение = стартовое значение - инкремент . Вот и все, что было сделано. А все нюансы с GEN_ID (которому пох и на starting value и на increment ) - уже следствие.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075324
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris
Надеюсь в gen_id осталось прежнее поведение?

для тех, кто не юзает START WITH / RESTART WITH в CREATE / ALTER SEQUENCE - все осталось по-прежнему
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075327
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

а SET GENERATOR ведёт себе как ALTER SEQUENCE или по старому?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40075331
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-старому
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40081523
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Шавлюк Евгений
На fb4.0 у меня выполнение занимает около 1 минуты (!!!!), на fb3.0 - ~4 секунды
Реализация similar to была значительно изменена, и в основном новая (основана на библиотеке RE2) работает гораздо лучше старой (самописной).
Должно быть исправлено, можно попробовать свежий снапшот.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089842
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую еще раз поднять тему генераторов
Есть генератор
Код: sql
1.
CREATE SEQUENCE GEN_VERSION START WITH 21000000 INCREMENT BY 1;


Изменяю генератор так:
Код: sql
1.
ALTER SEQUENCE GEN_VERSION RESTART WITH 21060100;


не изменяет rdb$initial_value в rdb$generators
Код: sql
1.
select rdb$initial_value from rdb$generators where rdb$generator_name = 'GEN_VERSION'


Использование gen_id показывает на 1 меньше чем значение в "RESTART WITH"
Код: sql
1.
select gen_id(gen_version, 0) from rdb$database


Почему не изменяется rdb$initial_value?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089847
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где сказано, что initial value должен меняться? RESTART WITH меняет только текущее значение.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089852
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

В fb3.0 он изменялся.
Сейчас initial value устанавливается только при создании генератора.

Для меня изменение initial value біло удобным, т.к. сохранялось при выгрузке БД в скрипт из ibescript для контроля версии
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089856
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может оно и было удобным, но нестандартным ( тынц ). Хотя, конечно, несколько странно, что стандартный ALTER SEQUENCE не позволяет менять ни initial value, ни increment.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089867
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,
Какой же смысл от этого "initial value" если его нельзя изменить никак кроме как пересозданием объекта?
Но это скорее риторический вопрос...
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089871
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно попробовать в трекер. В PG и MSSQL, например, добавили нестандартные расширения для ALTER SEQUENCE. У нас вроде можно поменять INCREMENT, но почему-то нельзя START WITH.
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089877
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандарт не догма, а руководство к действию!
© - В.И.Ленин
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089926
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

Я даже не представляю как это оформить в виде тикета. Может кто возмется оформить?
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089959
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

да чего там думать

Код: sql
1.
2.
ALTER [SEQUENCE|GENERATOR] <gen_name>
SET INITIAL VALUE <value>



ну и текста добавить. Таким образом мы с одной стороны RESTART WITH в соответствии со стандартом, с другой
немного расширяем нестандартным синтаксисом. Это вроде как стандартом не запрещено
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40089991
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

тогда уж делать как все остальные - START WITH <value>, а не чужеродный SET INITIAL VALUE <value>

ЗЫ. занесу в трекер сам
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40090042
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не работает ли та уже CREATE OR ALTER SEQUENCE?.. Вспоминается, я уже копал в этом
направлении...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB4.0 Проблемы совместимости
    #40090047
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

CREATE OR ALTER SEQUENCE изменяет только текущее значение, но не initial value
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB4.0 Проблемы совместимости
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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