powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Internal и external function с одинаковым названием
25 сообщений из 71, страница 1 из 3
Internal и external function с одинаковым названием
    #39695269
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 3.0. В базе есть UDF с именем FORMAT_DATE. И я создал FUNCTION с именем FORMAT_DATE. Теперь я не могу сделать вызов UDF, так как она перекрывается обычной функцией. Надо ли идти с этим в трекер?
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695270
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более того, я не могу удалить обычную функцию, так как на нее повесились все зависимости от UDF - по факту же она нигде не используется.

Создал CORE-5905 .
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695315
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

Internal function в данном случае термин не верный. Это походу IBExpert так смутил своими названиями. В реальности это PSQL функция. А Internal function это те функции которые встроены в FB, например SUBSTRING.

Теперь по поводу external function. Их на самом деле 2 вида: новые UDR и старые (DECLARE EXTERNAL FUNCTION) или UDF (можно ещё назвать legacy external function).

Ну это я так поворчал по поводу термином. По поводу бага полностью согласен. Одноимённые legacy external function/UDF и PSQL/UDR функции надо бы запретить создавать.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695687
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

либо таки наконец ввести namespaces

UDF$FORMAT_DATE, UDR$FORMAT_DATE, UDSQL$FORMAT_DATE
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695693
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

в топку. Если уж и вводить то схемы. Нужны неймспейсы делай PSQL пакеты.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695696
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

ну так введите имплицитный пакет Legacy куда и складывайте все UDF

и с UDR аналогично

чтобы в ядре (в зависимостях, в планах, в BLR) было полное имя объекта.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695702
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

легаси нельзя в пакетах размещать, у них синтаксис совсем другой. А обычные UDR ты и сам можешь в пакете поместить.

И опять же авторну так введите имплицитный пакет можно подумать что я этим занимаюсь
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39695812
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно подумать, что ты единственный читаешь

ты защищаешь некую коллективную точку зрения, некотое коллективнoе статус-кво,

которое привело к проблеме "забыли заранее повесить заплатку" и может быть ещё приведет

я его критикую, не тебя лично, а коллективное
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696004
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochты защищаешь некую коллективную точку зрения, некотое коллективнoе статус-кво,

я никого не защищаю. У меня есть своё мнение на этот счёт. И я полностью согласен с ТС, что позволять создавать одноименные UDF и PSQL функции это баг. Да и команда разработчиков тоже согласна.

А вот твоё предложение не поддерживаю.

И кстати в 4.0 Legacy UDF объявлены depricated. И как-то особо стараться чтобы улучшать их возможности (ну например позволять размещать в пакетах) уже не будут. Поэтому если есть ещё необходимые вам самописные UDF пора задуматься над тем чтобы переписать их на UDR.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696148
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо просто будет сделать бридж - UDR реализующую UDF

Замена простых решений сверх-сложными, просто ради замены....

После всех фанфар, что UDR нужна, чтобы огнать и писать Оракл и писать плагины на Java - вот UDR давно есть, а плагинов на Java нет.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696149
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochчтобы огнать и писать Оракл
догнать и перегнать
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696161
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

вообще плагин для написания UDR на Java есть (Beta версия). Но Адриано там так намудрил, что использовать его сложновато. Я уж лучше на Delphi UDR напишу.

Чтобы догнать и перегнать Оракл одних Java UDR явно не достаточно
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696186
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНо Адриано там так намудрил

если бы так было, кто-нибудь бы уже написал "хорошо и просто", тот же Марк например.

Давай посмотрим, сколько у нас Delphi-библиотек на тупом неправильном устаревшем API тянущемся с прошлого века
* FIBC и её потомки IBX & FIB+
* IBO
* UIB
плюс к ним - универсалы
* BDE
* DBX
* Zeos
* UniDAC
* AnyDAC

А сколько у нас Delphi-библиотек с крутейшим гибким удобным быстрым и современным API ?

И дело тут явно не в десятках лет запасов. Десятки лет - это например рассыпавшийся от старости BDE.
А UIB был начат с чистого листа несмотря на наличие к тому времени других библиотек.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696209
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochсколько у нас Delphi-библиотек на тупом неправильном устаревшем API тянущемся с прошлого века

это кто тебе сказал что это API тупое и устаревшее? Плюнь ему в глаз.
То что там есть определённые ограничения не делают его тупым. Или ты предлагаешь авторам сиих библиотек забить на совместимость с Firebird < 3.0.

FIB+ - сдох и не поддерживается. Кто же по твоему туда новый API будет писать.
IBX - глубоко плевать на Firebird. Он на Interbase ориентирован.
UIB - тоже труп по большому счёту. Тем не менее в последних версиях зачатки нового API там есть.
BDE - ещё один труп.
DBX - этот почти труп. По крайней мере Embercadero переключается на FireDac.
Zeos - труп.
IB Object - понятия не имею что у них там в последних версиях. Продукт коммерческий у меня его нет.

UniDAC, FireDAC скорее всего подтянутся и добавят поддержку нового API со временем.
IBX2 полностью поддерживает новое и старое API.

И это ты ещё не брал в рассмотрение не Delphi компоненты.

Тот же PDO для пыха тоже на старом API. В прочем там ситуация довольно плачевная. Его особо не поддерживают.

Просто в 3.0 новое API по большому счёту для клиентских приложений не даёт ничего нового. А вот UDR другое дело.
А вот в 4.0 это уже не так. Один Batch API уже много стоит.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696223
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисПросто в 3.0 новое API по большому счёту для клиентских приложений не даёт ничего нового.
А вот в 4.0 это уже не так. Один Batch API уже много стоит.

Он стоит меньше, чем кажется на первый взгляд.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696230
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

так там много чего ещё есть. Те же самые длинные имена объектов. Вроде новую XSQLVAR не стали делать.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696234
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто API тупое .... там есть определённые ограничения

тогда зачем было создавать резко отличное API вместо расшиваиня этих "определенных" - т.е. немногочисленных и локализованых - узких мест?

Симонов Денисэто API .... устаревшее?
Симонов Денисзабить на совместимость с Firebird < 3.0.

когда выходило последнее обновление FB 2.1.x ? а почему?
когда выйдет последнее обновление FB 2.5.x ?

> IBX - глубоко плевать на Firebird. Он на Interbase ориентирован.

В том числе IBX/Lazarus ?

Но речь то не о том совсершенно. Ты уводишь разговор в сторону.
Я говорил про написание новых библиотек, поэтому и считал их количество.
Я даже специально подчеркнул, что UIB был написан несмотря на уже существующую пачку библиотек.

А ты переводишь разговор на модификацию старых - не о том речь, пксть они все хоть умрут как BDE!
Где же НОВЫЕ библиотеки, изначально строящиеся вокруг крутого и прогрессивного ОО-API ?
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696238
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВроде новую XSQLVAR не стали делать.

Я не стал её делать, поскольку особого смысла не вижу, а у остальных и вообще нет ни
времени ни желания. А так скопировать определение XSQLVAR версии 2 с интербейзовских
заголовков и подправить пару внутренних классов для её распознавания - работы на пару дней.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696239
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochтогда зачем было создавать резко отличное API вместо расшиваиня этих "определенных" - т.е.
немногочисленных и локализованых - узких мест?

Это новое API изначально создавалось для использования плагинами, которым нужна была
единая точка доступа к функциям движка. Потом его внезапно (и преждевременно по моему
мнению) решили сделать и клиентским тоже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696241
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного оффтопика

Симонов ДенисZeos - труп.

я тоже так думал, вспоминая агонию версий 6.9.9.9.9.9....
но народ в форуме Delphi говорит, что сейчас проект ожил и активно пилится.

Симонов ДенисIBX2 полностью поддерживает новое и старое API.

Интересно, не знал про него. Он правда до релиза ещё ХЗ когда дорастёт, но пусть будут 100 цветов.

Симонов ДенисИ это ты ещё не брал в рассмотрение не Delphi компоненты.
Ну ты сам про Delphi напомнил. Впрочем, можешь и про остальные сказать.

JDBC - wire protocol, он вообще в основном режиме от fbclient.dll не зависит.
.NET Provider кажется так же.

Симонов ДенисПросто в 3.0 новое API по большому счёту для клиентских приложений не даёт ничего нового.
Ч.т.д.

Симонов ДенисА вот UDR другое дело.
....теоретически.

На практике же дополнить функционал написанием UDF намного проще.
И простота эта - сама по себе достоинство.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696243
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто новое API изначально создавалось для использования плагинами

Что само по себе уже забавно.
Потому что тут требуется сразу решать, на каких языках будут писаться плагины?

C++ ? тогда не надо городить как-бы-COM-но-не-совсем.
Делайте обычные абстрактные классы C++

Кросс-языковый? тогда берите стандартную библиотеку, с которыми известно как работать из разных языков. Например MS-COM и XPCOM. Взаимодействием COM<->.Net например сама Майкрософт занимается, почему же это было не использовать?

Но это якобы будет на несколько процентов медленнее.
В результате получили произведение искусства, которое чужеродное и для C++ и для остальных языков. Но зато все никем ненаписанные плагины работают несколько быстрее.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696248
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovединая точка доступа к функциям движка.

Кстати, а насколько этот доступ безопасен? ведь по идее чем глубже залезть - тем больше можно разломать.

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

Если чайник начнёт писать UDR-плагин по такому же принципу, как эти горе-UDF, собрать вместе несколько отрывков кода с разных форумов, а потом "трясти", менять тут и там наугад, пока плагин не подключиться - насколько негативное влияние на стабильность работы движка будет больше или меньше сравнительно с аналогичными UDF ?
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696290
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ты UDR то хоть щупал прежде чем говорить?

В UDF ты не можешь нормальными способами:
1. Получить контекст транзакции/соединения
2. Обработать исключение и выбросить его в стандартный для firebird статус вектор
3. Контролировать NULL во входных параметров. Точнее можно но через жопу
4. Писать хранимые процедуры и триггеры

Arioch насколько негативное влияние на стабильность работы движка будет больше или меньше сравнительно с аналогичными UDF ?

точно так же как и на UDF. В память движка везде гадится одинаково.

>> C++ ? тогда не надо городить как-бы-COM-но-не-совсем.

COM за пределами Windows нет.

>> Делайте обычные абстрактные классы C++

Изначально так и сделали, но на FPC что-то пошло не так.
Кроме того, есть ещё C.

>> В результате получили произведение искусства, которое чужеродное и для C++ и для остальных языков.

Да неужели? Ты хоть смотрел что этот самый CLOOP генерирует? Да прослойка несколько толще чем чистый виртуальный класс, но никакой чужеродности там нет.

>>> В том числе IBX/Lazarus ?

IBX for Lazarus это немного другой IBX. И там кстати весьма вероятно новый API прикрутят.
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696322
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис2. Обработать исключение и выбросить его в стандартный для firebird статус вектор

В UDR эта возможность тоже сильно ограничена. Фактически - до одного-единственного кода
isc_random.

Симонов ДенисCOM за пределами Windows нет.
COM+ и OLE Automation с их фабриками классов и регистрацией в едином реестре - нет (из
коробки), только сторонние реализации, например, от Мозиллы. COM как Common Object Model
(т.е. формат объекта с VMT) - есть, причём полностью совместимый во все стороны.

Симонов ДенисТы хоть смотрел что этот самый CLOOP генерирует?
Структуры указателей на обычные функции с дополнительным параметром он генерирует.
Сурпрайз, но от COM это отличается только наколенной реализацией. И не сурпрайз, что к
другим языкам он прикручивается точно через то же отверстие, что и обычный COM, только хуже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Internal и external function с одинаковым названием
    #39696345
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВ UDF ты не можешь нормальными способами:

в скольких процентах случаев это реально нужно?

Ariochпростота [UDF] - сама по себе достоинство.
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Internal и external function с одинаковым названием
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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