powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Почему так?
37 сообщений из 37, показаны все 2 страниц
Почему так?
    #39019422
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
create function F () returns bigint
as
begin
  return UdfF();
end


Невозможно подтвердить транзакцию:
Invalid token.
invalid request BLR at offset 31.
function UDFF is not defined.
module name or entrypoint could not be found.

UdfF определена в базе, но в dll её нет.
Зачем при коммите грузится udf-ная dll и проверяется наличие там функции? Это и время и незачем. Ведь функции реально может не быть (как временно у меня), как и самой dll, а закоммитить нужно (создание UdfF перед этим успешно закоммитилось).
Собственно мучал рефакторингом скрипт создания базы, и порефакторил использование udf-функций, ну и переименовал заодним, с мыслью потом переписать dll (там не только названия, но и типы некоторые поменяются, и логика). И хотел проверить съестся ли новый скрипт прежде чем зарефакторить его совсем. Неожиданно не съелся.
...
Рейтинг: 0 / 0
Почему так?
    #39019430
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fb User!
You wrote on 30 июля 2015 г. 11:53:50:

Fb User> Это и время и незачем
кисо, ку-ку
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019433
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

развёрнутые ответы троллям не даём.
...
Рейтинг: 0 / 0
Почему так?
    #39019499
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userзакоммитить нужно
Если хочешь коммитить инвалидные объекты - тебе к Оракулу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019513
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovfb userзакоммитить нужно
Если хочешь коммитить инвалидные объекты - тебе к Оракулу.

Это закоммитилось:
Код: sql
1.
2.
3.
DECLARE EXTERNAL FUNCTION UdfF
    RETURNS BIGINT BY VALUE
    ENTRY_POINT 'F' MODULE_NAME 'Udf';


А вот это следом нет:
Код: sql
1.
2.
3.
4.
5.
create function F () returns bigint
as
begin
  return UdfF();
end;


Просто неожиданно.
...
Рейтинг: 0 / 0
Почему так?
    #39019533
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladразвёрнутые ответы троллям не даём.
Я не вижу какой вы мне можете дать ответ в данной проблеме. Единственное что если кто-то из заинтересованных разработчиков или тестеров обратит внимание на несуразность, и предвидя возможные последствия возьмёт на карандаш.
...
Рейтинг: 0 / 0
Почему так?
    #39019535
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fb Userхрень
усохни, промокашко.
ты никому нах не интересен.
твои высеры унылы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019549
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

ты видишь разницу между декларацией и созданием? UDF грузится при первом обращении к ней. Когда ты компилируешь новый объект метаданных содержащий UDF она пытается загрузиться в память.

Вот тебе пример новых внешних функций

Код: sql
1.
2.
3.
4.
5.
CREATE FUNCTION wait_event (
  event_name varchar(31) CHARACTER SET ascii
) RETURNS INTEGER
EXTERNAL NAME 'udrcpp_example!wait_event' -- нету точки входа
ENGINE udr;



Код: plaintext
1.
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
Module not found.

такое уже не позволяется. Что более верно.
...
Рейтинг: 0 / 0
Почему так?
    #39019550
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userЭто закоммитилось:
В трекер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019552
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийFb Userхрень
усохни, промокашко.
ты никому нах не интересен.
твои высеры унылы.
У меня нет потребности быть интересным или неинтересным. Я тут на тему ошибки.
И кто троллит? Я с ошибкой пришёл, а тут вы со своими выпадами оффтопите и провоцируете. Это сайт официальной поддержки FB в конце концов.
...
Рейтинг: 0 / 0
Почему так?
    #39019554
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fb User!
You wrote on 30 июля 2015 г. 13:09:37:

Fb User> Это сайт официальной поддержки FB в конце концов.
нет.
усохни.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019555
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userЯ тут на тему ошибки.
С ошибками - в трекер. То, что DECLARE FUNCTION не проверяет наличие библиотеки - баг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019560
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

оно кстати и в 2.5 не проверяет
...
Рейтинг: 0 / 0
Почему так?
    #39019567
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисоно кстати и в 2.5 не проверяет
Оно никогда не проверяло чтобы иметь возможность восстановить БД на системе без внешних
модулей. Но это - толерантность к криворуким и потому - баг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019568
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 30 июля 2015 г. 13:13:25:

Dimitry Sibiryakov> То, что DECLARE FUNCTION не проверяет наличие библиотеки
так было всегда.
от Адама (Джима).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019570
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 30 июля 2015 г. 13:14:32:

Dimitry Sibiryakovэто - толерантность к криворуким и потому - баг.
тебя мынус покусал.
за жопу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019579
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovОно никогда не проверяло чтобы иметь возможность восстановить БД на системе без внешних
модулей. Но это - толерантность к криворуким и потому - баг.


В принципе это не совсем логично. Получается если я тупо объявлю UDF и не буду использовать её в своих ХП, триггерах и вычисляемых столбцах база восстановится, а если она там будет задействована нет. Хотя новые внешние функции ведут себя иначе и вот они уже более строгие.

Хотя мне пофиг. На данный момент у меня нигде нет использования UDF.
...
Рейтинг: 0 / 0
Почему так?
    #39019617
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис
Код: sql
1.
2.
3.
4.
5.
CREATE FUNCTION wait_event (
  event_name varchar(31) CHARACTER SET ascii
) RETURNS INTEGER
EXTERNAL NAME 'udrcpp_example!wait_event' -- нету точки входа
ENGINE udr;



Код: plaintext
1.
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
Module not found.

такое уже не позволяется. Что более верно.
Вы готовы смириться с тем, что вам могут прислать isql-скрипт БД (и возможно даже все udr-модули для БД), но вы не сможете применить его просто потому что нет udr под вашу ОС или разрядность?

Надеюсь хоть для рестора dll-ки не нужны. Ведь не может быть так, чтобы только для того чтобы потестировать скорость работы выборок на другой ОС, нужно было компилять туда udr.

Для тех пользователей, которые реально захотят заморочиться с авто-проверками, нужно просто сделать свой синтаксис:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE FUNCTION wait_event (
  event_name varchar(31) CHARACTER SET ascii
) RETURNS INTEGER
EXTERNAL NAME 'udrcpp_example!wait_event' -- нету точки входа
ENGINE udr 
WITH EXISTENCE CHECK;


и довольными останутся все.
...
Рейтинг: 0 / 0
Почему так?
    #39019627
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userWITH EXISTENCE CHECK;
это бред какой-то.

считаю, что для функций в отношении udf надо делать точно так же, как и для декларации UDF - не делать вызов udf.
Иначе мы получим то, о чем сказал DS - нересторабельный бэкап, перенесенный без dll udf.
...
Рейтинг: 0 / 0
Почему так?
    #39019633
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userВы готовы смириться с тем, что вам могут прислать isql-скрипт БД (и возможно даже все udr-модули для БД), но вы не сможете применить его просто потому что нет udr под вашу ОС или разрядность?

Ищем все UDR и делаем вместо них заглушки только и всего.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/* временная мера — нету удра */
RECREATE FUNCTION wait_event (
  event_name varchar(31) CHARACTER SET ascii
) RETURNS INTEGER
/*
EXTERNAL NAME 'udrcpp_example!wait_event' -- нету точки входа
ENGINE udr;
*/
AS
BEGIN
  RETURN 1;
END
...
Рейтинг: 0 / 0
Почему так?
    #39019651
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvfb userWITH EXISTENCE CHECK;
это бред какой-то.

считаю, что для функций в отношении udf надо делать точно так же, как и для декларации UDF - не делать вызов udf.
Иначе мы получим то, о чем сказал DS - нересторабельный бэкап, перенесенный без dll udf.
Тех, кому прям нужно-нужно автопроверяться, имхо нужно тоже уважить. Может им на самом деле нужно. Ну т.е. я вижу что иногда автопроверяться очень удобно, а иногда прям конкретно нет (как со скриптами и бэкапами).
...
Рейтинг: 0 / 0
Почему так?
    #39019656
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvИначе мы получим то, о чем сказал DS - нересторабельный бэкап, перенесенный без
dll udf.
Или неработоспособную БД в результате восстановления, что не сильно-то отличается.
По-моему, как я уже сказал, восстановление и декларация должны проверять наличие функции,
а для экстренных случаев, как и для битых ограничений, у рестора есть ключ игнорирования
ошибок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019668
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ну смотри. у тебя база в 50 гиг. ресторишь ты ее часа три (вообще, или перенес бэкап на тестовый сервер). И в конце - бац! udf нету. И тут два варианта
- ищешь udf, подкладываешь под сервер, запускаешь рестор (еще три часа), не дай бог не все dll переписал.
- указываешь опцию игнора (чего именно? вообще -no_validity? с чего бы это?), и ждешь еще 3 часа.

то есть, 3 часа ты уже потерял, просто так, на пустом месте. Вместо того, чтобы максимум за 5 минут при ошибке обращения к конкретной udr или udf быстренько подсунуть недостающие dll.
...
Рейтинг: 0 / 0
Почему так?
    #39019671
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userИ кто троллит?Как минимум провокации с твоей стороны есть. Особенно под ником "минус". Таки рекомендую по хорошему сменить тон своих реплик.
...
Рейтинг: 0 / 0
Почему так?
    #39019675
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvИ в конце - бац! udf нету
UDF восстанавливаются первыми.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019680
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

не всё так однозначно. UDF могут использоваться например в индексах по выражению. И тут уже как не старайся без подсунунутой UDF ничего не сделаешь. В крайнем случае только без индексов восстановить.

Как по мне в gbak при восстановлении была бы полезна спец опция при выставлении которой, если gbak натыкается на ошибку, то он не завершается аварийно, а спрашивает у пользователя что с этой ошибкой делать: проигнорировать (т.е не восстановливать конкретный объект метаданных, хотя дальше это может вызвать лавину ошибок), повторить (может за это время ты уже подсунул нужную udf), завершить аварийно.
...
Рейтинг: 0 / 0
Почему так?
    #39019681
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисто он не завершается аварийно, а спрашивает у пользователя что с этой ошибкой делатьgbak частенько работает из разного рода скриптов, отвечать может оказаться некому.
...
Рейтинг: 0 / 0
Почему так?
    #39019688
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

ну так это будет на совести того кто этот переключатель в скрипт воткнул. Никто ведь не заставляет. Это так скажем интерактивный режим (если его указали), когда пользователь следит за процессом выполнения и принимает решения.
...
Рейтинг: 0 / 0
Почему так?
    #39019689
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

интерактивность у гбака - опасная штука. Предполагается, что он не должен ничего спрашивать, и должен либо успешно завершиться, либо выдать ошибку.
Достаточно вспомнить, когда по нехватке места (при бэкапе) выдавалось сообщение "вставьте следующий носитель" или как-то там.
гбак чаще запускается автоматизировано, чем вручную, лог вывода обычно направляется в файл, и т.д.
...
Рейтинг: 0 / 0
Почему так?
    #39019699
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvинтерактивность у гбака - опасная штука.
Поэтому у туевой хучи утилит есть ключи типа "отвечать Yes на все вопросы" или "не
задавать вопросов вообще".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019726
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

если gbak выполняется по крону в скрипте никто этот переключатель интерактивности в здравом уме ставить не будет. Кто поставит ССЗБ.
...
Рейтинг: 0 / 0
Почему так?
    #39019765
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvну смотри. у тебя база в 50 гиг. ресторишь ты ее часа три (вообще, или перенес бэкап на тестовый сервер). И в конце - бац! udf нету.Ты давно это сам-то пробовал ?
Партизанен ? :)
...
Рейтинг: 0 / 0
Почему так?
    #39019884
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

вопрос неправильно поставлен. "давно ли ты смотрел в лог рестора?". Вот так правильно. Нет, не так давно, но не туда :-)
Впрочем, свое предположение про рестор я снимаю, потому что при ресторе объекты не перекомпилируются, и UDR тут эквивалентна процедуре или триггеру с вызовом UDF.
Тогда надо проверить - можем мы создать процедуру с udf, dll которой отсутствует? Если точно так же нет, то тогда fb user (как обычно) пудрит людям мозги.
...
Рейтинг: 0 / 0
Почему так?
    #39019887
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvпри ресторе объекты не перекомпилируются
Не так давно жаловались, что рестор обламывается потому, что валидность BLR всё же
проверяется(-лась).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему так?
    #39019897
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvвопрос неправильно поставленИменно. Ибо проблема с отсутствующей UDF во время рестора трактуется как warning, а не как error. И не приводит к прерыванию рестора.
Так что повторю вопрос - партизанен ? :)
...
Рейтинг: 0 / 0
Почему так?
    #39019903
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

DS предложил
Dimitry Sibiryakovкак я уже сказал, восстановление и декларация должны проверять наличие функции
я ему в ответ предположил , как тогда будет обламываться рестор.

Он в ответ на это меня поправил, что функции ресторятся в самом начале.

Потом ты начал про "warning". Я про это и так знаю.
...
Рейтинг: 0 / 0
Почему так?
    #39019904
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЯ про это и так знаю.Гут. Значит я тебя не так понял.
Надеюсь, остальные меня поняли более правильно :)
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Почему так?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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