powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Почему так?
25 сообщений из 37, страница 1 из 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
25 сообщений из 37, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Почему так?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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