powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разработчик ядра FIREBIRD: первые шаги
116 сообщений из 116, показаны все 5 страниц
Разработчик ядра FIREBIRD: первые шаги
    #39603433
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил изучить процесс доработки ядра FIREBIRD.
Делаю первые шаги и сразу возникли вопросы.
С установкой и настройкой среды проблем не выявлено, достаточно следовать описанию на офсайте.
Но вот со сборкой проектов начались проблемы.
Оговорюсь сразу, что речь идет о Windows версиях.
Под Visual Studio версия 3.0.2 собирается без проблем. На предупреждения пока не будем обращать внимание, вернемся к ним позже.
Но последний выпуск 3.0.3, где включена поддержка уже VS2015, при компиляции и сборке проекта на запуске make_boot.bat выдает ошибку. По непонятной причине из препроцессинга выпадает обработка alice_meta.epp.
Ну и далее, по отсутствию alice_meta.cpp вся сборка валится, так как соответствующая библиотека не скомпилировалась.
Кто может подсказать в чем проблема?
Заранее спасибо.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603437
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

учи С++, и не жалуйся.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603439
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Кто может подсказать в чем проблема?

Если ты пытаешься собрать тройку студией 2015, то проблемы предсказуемы: это не мейнстрим
и Влад фиксит соответствующие проекты не сразу. Собирай из текущих источников бранча, а не
релиза.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603441
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSQL2008Кто может подсказать в чем проблема?

Если ты пытаешься собрать тройку студией 2015, то проблемы предсказуемы: это не мейнстрим
и Влад фиксит соответствующие проекты не сразу.
Спасибо. Я так и подумал, но решил уточнить.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603446
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Но последний выпуск 3.0.3, где включена поддержка уже VS2015, при компиляции и сборке проекта на запуске make_boot.bat выдает ошибку. По непонятной причине из препроцессинга выпадает обработка alice_meta.epp.
Ну и далее, по отсутствию alice_meta.cpp вся сборка валится, так как соответствующая библиотека не скомпилировалась.Ещё раз повторяю - я проверял сборку 3.0.3 с VS2015 и она в полном порядке.
Покажи лог сборки, скорее всего не был создан один из подкаталогов в gen.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603448
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008Но последний выпуск 3.0.3, где включена поддержка уже VS2015, при компиляции и сборке проекта на запуске make_boot.bat выдает ошибку. По непонятной причине из препроцессинга выпадает обработка alice_meta.epp.
Ну и далее, по отсутствию alice_meta.cpp вся сборка валится, так как соответствующая библиотека не скомпилировалась.Ещё раз повторяю - я проверял сборку 3.0.3 с VS2015 и она в полном порядке.
Покажи лог сборки, скорее всего не был создан один из подкаталогов в gen.
Я же не сказал, что не верю или ошибка в исходниках.
Пытаюсь понять почему не собирается у меня.
Это принципиальный вопрос и перед тем как вносить какие-то изменения необходимо добиться, чтобы изначальный проект собирался без ошибок и варнингов.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603449
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Пытаюсь понять почему не собирается у меня.А я пытаюсь выяснить - что пошлО не так.
Вот эти строки на консоли в начале процесса make_boot есть ? Или они отличаются ?

Код: plaintext
1.
2.
3.
Copy autoconfig.h
Creating directories

Building btyacc (Win32\release)...
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603451
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь лог наверно нет смысла постить, вот важная строчка
1>------ Build started: Project: remote, Configuration: Release x64 ------
2>------ Build started: Project: alice, Configuration: Release x64 ------
3>------ Build started: Project: burp, Configuration: Release x64 ------
4>------ Build started: Project: ib_util, Configuration: Release x64 ------
2> alice.cpp
2> exe.cpp
2> tdr.cpp
2> alice_meta.cpp
2>c1xx : fatal error C1083: Cannot open source file: '..\..\..\gen\alice\alice_meta.cpp': No such file or directory

Папка \gen\alice\ сформировалалсь успешно, но alice_meta.cpp туда неотпроцессился. Исходный alice_meta.epp на месте и он нормальный.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603457
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008Пытаюсь понять почему не собирается у меня.А я пытаюсь выяснить - что пошлО не так.
Вот эти строки на консоли в начале процесса make_boot есть ? Или они отличаются ?

Код: plaintext
1.
2.
3.
Copy autoconfig.h
Creating directories

Building btyacc (Win32\release)...


Вот как у меня начинается выполнение
make_boot.bat

Setting Environment Variables thus...

vs_ver=msvc14
platform=x64
msvc_version=14
db_path=C:/FB303
root_path=C:\FB303
server_name=localhost

(End of setenvvar.bat)

Executed set_build_target.bat


Creating directories

Building btyacc (x64\release)...

Microsoft Visual Studio 2015 Version 14.0.25420.1.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: btyacc, Configuration: Release x64 ------
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603458
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты про make_icu не забыл?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603459
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТы про make_icu не забыл?..
Нет. Запускаю перед этим, но там все пучком.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603466
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Весь лог наверно нет смысла постить, вот важная строчкаЭто уже следствие проблемы, возникшей раньше.

SQL2008Папка \gen\alice\ сформировалалсь успешно, но alice_meta.cpp туда неотпроцессился. Исходный alice_meta.epp на месте и он нормальный.А что у тебя после строки
Код: plaintext
Preprocessing the source files needed to build gbak, gpre and isql...

есть ли там

Код: plaintext
1.
2.
3.
4.
Processing alice/alice_meta.epp
Calling GPRE for alice/alice_meta.epp
        1 file(s) moved.

...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603473
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЭто уже следствие проблемы, возникшей раньше.
В этом нет никакого сомнения.

hvlad есть ли там
Код: plaintext
1.
2.
3.
Processing alice/alice_meta.epp
Calling GPRE for alice/alice_meta.epp
        1 file(s) moved.


Нет, процесс начинается с

Код: plaintext
1.
2.
Processing yvalve/array.epp
Calling GPRE for yvalve/array.epp
Перемещено файлов:         1.

А почему это происходит мне непонятно... Попробую сравнить батники версий 3.0.2 (рабочая) и 3.0.3 (нерабочая)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603475
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Батники preprocess.bat различаются в 70-й строке
3.0.2
@for %%i in (dfw, dpm, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx

3.0.3
@for %%i in (dfw, dpm, dyn_util, fun, grant, ini, met, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx

Что это значит пока не готов сказать.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603482
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и решилась проблема.
Взял батник препроцессора от 3.0.2 и все заработало.
hvladЕщё раз повторяю - я проверял сборку 3.0.3 с VS2015 и она в полном порядке.
Могу предположить, что вы обновили исходники, а командные файлы оставили прежними?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603483
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь переводы строк в батниках. Они должны быть нативные CR-LF, cmd не понимает
CR-only. В .gitattributes добавь "*.bat eol=crlf".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603484
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Что это значит пока не готов сказать.Убрали ненужное. К alice_meta.epp не имеющее никакого отношения

hint: в логе изменений есть комментарии
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603485
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Взял батник препроцессора от 3.0.2 и все заработало.pcmet.epp был убран между 3.0.0 и 3.0.1, с тех пор изменений в preprocess.bat не было
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603487
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

а откуда ты брал исходники ?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603490
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Нет, процесс начинается сТам дальше должна быть строка про alice_meta.epp, вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Processing utilities/gstat/dba.epp
Calling GPRE for utilities/gstat/dba.epp
        1 file(s) moved.

Processing alice/alice_meta.epp
Calling GPRE for alice/alice_meta.epp
        1 file(s) moved.

Processing yvalve/array.epp
Calling GPRE for yvalve/array.epp
        1 file(s) moved.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603491
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Могу предположить, что вы обновили исходники, а командные файлы оставили прежними?Этого достаточно, чтобы перестать предполагать ?

Код: plaintext
1.
2.
3.
D:\Firebird\fb3 [B3_0_Release +3 ~0 -0 !]> git status -uno
On branch B3_0_Release
Your branch is up-to-date with 'origin/B3_0_Release'.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603515
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПроверь переводы строк в батниках. Они должны быть нативные CR-LF, cmd не понимает
CR-only. В .gitattributes добавь "*.bat eol=crlf".Подтверждаю, в tarball архиве виндовые батники имеют LF в кач-ве перевода строк.
Почему-то именно для preprocess.bat это приводит к ошибкам, другие файлы выполняются корректно.
Исходники полученные git'ом такой проблемы не имеют - он по-умолчанию ставит платформенно зависимые концы строк.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603516
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008Взял батник препроцессора от 3.0.2 и все заработало.pcmet.epp был убран между 3.0.0 и 3.0.1, с тех пор изменений в preprocess.bat не было
Тогда возможно просто пересохранение файла привело к восстановлению правильных переводов строки?
Проверю - удалю pcmet и перезапущу сборку.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603521
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008,

а откуда ты брал исходники ?
3.0.2. версию с гитхаба, только это было пару месяцев назад.
3.0.3. оттуда же.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603523
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008Взял батник препроцессора от 3.0.2 и все заработало.pcmet.epp был убран между 3.0.0 и 3.0.1, с тех пор изменений в preprocess.bat не было
Нет, коллеги!
Удаление pcmet из preprocessor.bat приводит к возобновлению ошибки!
Версия о некорректных переводах строк оказалась несостоятельной.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603528
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL20083.0.2. версию с гитхаба, только это было пару месяцев назад.
3.0.3. оттуда же.Каким образом ? Как git обрабатывает crlf ?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603530
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008hvladpcmet.epp был убран между 3.0.0 и 3.0.1, с тех пор изменений в preprocess.bat не было
Нет, коллеги!Серьёзно ? Научить спрашивать git про логи и теги ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
D:\Firebird\fb3 [B3_0_Release +3 ~0 -0 !]> git log R3_0_0..R3_0_1 .\builds\win32\preprocess.bat
commit bd555a15a41ccaf0cb95a2257e3e8035d44a5f8d
Author: hvlad <hvlad@users.sourceforge.net>;
Date:   Thu May 12 11:03:46 2016 +0300

    Place expression index support routines where it should be.
    Add protection from changes while expression index is built.
    Remove PCMET module.
D:\Firebird\fb3 [B3_0_Release +3 ~0 -0 !]> git log R3_0_1..R3_0_3 .\builds\win32\preprocess.bat
D:\Firebird\fb3 [B3_0_Release +3 ~0 -0 !]>

SQL2008Удаление pcmet из preprocessor.bat приводит к возобновлению ошибки!
Версия о некорректных переводах строк оказалась несостоятельной.Похоже, кому-то нужно разобраться с кашей на своём диске :)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603649
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008,

а откуда ты брал исходники ?

Вот тут , так как предыдущих версий нигде (не считая сомнительных мест) найти не смог.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603652
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПроверь переводы строк в батниках. Они должны быть нативные CR-LF, cmd не понимает
CR-only. В .gitattributes добавь "*.bat eol=crlf".
Хорошо, допустим виноваты переводы.
Прошу тогда объяснить тот факт, что одна версия компилируется нормально, а вторая дает ошибку при том, что переводы строк у обоих одинаковы и они действительно LF.
И различаются они (ну кроме кода, конечно) только наличием или отсутствием упоминания pcmet в preprocessor.bat.

Проведу эксперимент. Сделаю переводы строк CR+LF и попробую еще раз.
Мне не зазорно признать свою неправоту, нужно докопаться до истины.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603657
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008 Проведу эксперимент. Сделаю переводы строк CR+LF и попробую еще раз.
Вынужден признать, что был неправ!
Замена переводов строк решила проблему.
Проект стал корректно собираться даже при отсутствии pcmet.
Упрямился я потому, что мне казалось это нелогичным...
Вопрос снят, всем кому моя упёртость принесла огорчения, приношу свои искренние извинения.
Но на этом не прощаюсь... Скоро будут новые вопросы :)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603670
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В студии 2015 добавились новые предупреждения.
При компиляции проекта выдается множество C4595, о том, что использование перегруженных инлайн операторов new и delete, являющихся не членами класса, не рекомендуется.
Чисто теоретически эти операторы могут быть вызваны для разных объектов, что может привести к утечкам памяти.
А теперь вопрос - что лучше сделать:

1. Вынести определения new и delete как неинлайн в alloc.cpp, оставив в alloc.h только объявления.
2. Подавить выдачу предупреждений C4595 в каждом отдельном проекте.

Я бы выбрал 1-й вариант, но возможно, что есть некие нюансы, которые мне пока неизвестны.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603671
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

в master это уже давно исправлено

https://github.com/FirebirdSQL/firebird/commit/ce66904ebfd0cef7021bb5e3e90419c634b0f79c
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603675
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, спасибо!
у меня похоже устаревшая версия.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39603799
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008hvlad, спасибо!
у меня похоже устаревшая версия.master - это Firebird 4
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604210
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, а есть какое-то публичное место где можно обсуждать вопросы связанные с разработкой?

Например, я попробовал бы сделать Pull request по следующим задачам, но перед этим хотелось бы обсудить/убедиться, что решение таким-то способом у меня примут, а таким-то нет.
- http://tracker.firebirdsql.org/browse/CORE-5612
- http://tracker.firebirdsql.org/browse/CORE-5746

Пробовал задавать вопросы в трекере, но там полная тишина.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604219
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalov,

твои предложения полная фигня. Отключить защиту системных таблиц = вернуться в прошлый век.
Если что-то делается медленно правильно попросить ускорить этот момент в ядре, а не ковырять системные таблицы.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604255
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Дениствои предложения полная фигня. Отключить защиту системных таблиц = вернуться в прошлый век.
Если что-то делается медленно правильно попросить ускорить этот момент в ядре, а не ковырять системные таблицы.
А есть более конкретные аргументы в пользу защиты системных таблиц, кроме "полная фигня" и "вернуться в прошлый век"?
К тому же, я предлагал разрешить создание/выключение/включение индексов для системных таблиц.

Симонов ДенисЕсли что-то делается медленно правильно попросить ускорить этот момент в ядре, а не ковырять системные таблицы.
Что значит "в ядре" и что значит "не ковырять системные таблицы"? Что есть еще кроме системных таблиц и исходников?
Я указал место в исходниках, где это можно ускорить, а также указал каких индексов не хватает и в какой момент. И при каких действиях сейчас используется не совсем оптимальный индекс.

Ну вот я "попросил" - сижу жду ответа (не решения) уже больше полу года. Сколько еще ждать?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604264
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalovЗдравствуйте, а есть какое-то публичное место где можно обсуждать вопросы связанные с разработкой? https://sourceforge.net/p/firebird/mailman/firebird-devel/

rashid.abzalovНапример, я попробовал бы сделать Pull request по следующим задачам, но перед этим хотелось бы обсудить/убедиться, что решение таким-то способом у меня примут, а таким-то нет.
- http://tracker.firebirdsql.org/browse/CORE-5612
- http://tracker.firebirdsql.org/browse/CORE-5746 Насколько я помню, я исследовал 5612 и пришёл в выводу, что новыми индексами всех проблем не решить. Увы уже не помню подробностей.
Кроме того, очень сомнителен сам тестовый пример - там сотни вьюх на таблицы с сотнями полей.
Т.е. оно показывает проблему, но её реальная актуальность вызывает большие сомнения.

5746 слишком спорный, чтобы его взять и сделать, нужно обсуждение.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604266
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalovНу вот я "попросил" - сижу жду ответа (не решения) уже больше полу года. Сколько еще ждать?Активнее надо быть, не надо столько ждать :)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604267
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalovА есть более конкретные аргументы в пользу защиты системных таблиц, кроме "полная фигня" и "вернуться в прошлый век"?

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

rashid.abzalovК тому же, я предлагал разрешить создание/выключение/включение индексов для системных таблиц.

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

По твоему вопросу. Разработка обсуждается в fbdevel. см. https://www.firebirdsql.org/en/devel-mailing-lists/
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604270
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad5746 слишком спорный, чтобы его взять и сделать, нужно обсуждение.Сходу, я не против создания\удаления\альтера юзерских индексов для системных таблиц.
Также, возникает вопрос с бекапом\рестором, ибо они не будут включены в бекап - нужно менять код gbak
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604271
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.02.2018 15:12, hvlad пишет:
> Также, возникает вопрос с бекапом\рестором, ибо они не будут включены в бекап -
> нужно менять код gbak

а вродь собирались же, не?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604276
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

ну там он меняется сейчас несколько с другой целью
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604281
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad https://sourceforge.net/p/firebird/mailman/firebird-devel/
Спасибо, но там же вроде тоже самое (считай слепок), что и http://tracker.firebirdsql.org/secure/Dashboard.jspa? Или нет?

hvladКроме того, очень сомнителен сам тестовый пример - там сотни вьюх на таблицы с сотнями полей.
Т.е. оно показывает проблему, но её реальная актуальность вызывает большие сомнения.
В реальных базах зависимостей еще больше, а объектов которые нужно удалять/создавать/пересоздавать под 1 тыс. Поэтому время затрачиваемое на развертывание баз доходит до ~ 6-8 часов.
Т.е. для нас актуальность самая настоящая.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604286
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.02.2018 15:17, Симонов Денис пишет:
> ну там он меняется сейчас несколько с другой целью

если склероз мне не изменяет то собирались писать/ресторить
пользовательские триггеры на системные таблицы и т.п. примочки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604290
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladСходу, я не против создания\удаления\альтера юзерских индексов для системных таблиц.
Также, возникает вопрос с бекапом\рестором, ибо они не будут включены в бекап - нужно менять код gbak

Зачем менять gbak - у него свой системный слой, за который он отвечает.
Если на местах кто-то создал свои индексы в системных таблицах, то он сам за ними будет следить.
В других СУБД аналогично.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604303
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисконечно есть. Именно из-за коверкания системных таблиц больше всего воплей поломалась база, бекап не восстанавливается и т.д.
Т.е снова, из-за заботы о бедных пользователях, которые могут прострелить себе ногу, нужно все запретить и не дать никакой альтернативы?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604304
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalovСпасибо, но там же вроде тоже самое (считай слепок), что и http://tracker.firebirdsql.org/secure/Dashboard.jspa? Или нет?

нет конечно. В трекере делают предложения или рапортуют баги, но не обсуждают реализацию
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604307
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalov,

>> Т.е снова, из-за заботы о бедных пользователях, которые могут прострелить себе ногу, нужно все запретить и не дать никакой альтернативы?

да. Лично моё мнение, что расширение возможностей FB должно делаться штатными путями, а не хаками с боку.
Если что-то работает медленно в поиске по метаданным, то это тоже должно быть исправлено в ядре и для всех
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604323
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalovhvlad https://sourceforge.net/p/firebird/mailman/firebird-devel/
Спасибо, но там же вроде тоже самое (считай слепок), что и http://tracker.firebirdsql.org/secure/Dashboard.jspa? Или нет?Нет. "Там" почтовый список рассылки, просто при создании нового тикета в трекере "туда" тоже шлётся письмо.
Предлагаю найти соотв. письмо в fb-devel (про создание тикета 5746) и, ответив на него, начать обсуждение.

rashid.abzalovhvladКроме того, очень сомнителен сам тестовый пример - там сотни вьюх на таблицы с сотнями полей.
Т.е. оно показывает проблему, но её реальная актуальность вызывает большие сомнения.
В реальных базах зависимостей еще больше, а объектов которые нужно удалять/создавать/пересоздавать под 1 тыс. Поэтому время затрачиваемое на развертывание баз доходит до ~ 6-8 часов.
Т.е. для нас актуальность самая настоящая.Я имел в виду не вас конкретно, а более общий случай.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604324
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийесли склероз мне не изменяет то собирались писать/ресторить
пользовательские триггеры на системные таблицы и т.п. примочки.Твой склероз знает что-то, чего не помнит мой
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604330
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.02.2018 15:56, hvlad пишет:
> Твой склероз знает что-то, чего не помнит мой

больше склерозов! хороших и разных! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604332
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Спасибо, понял.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604799
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, кто в теме - когда планируется выход беты 4?
Хотя бы примерные сроки есть?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604804
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladПредлагаю найти соотв. письмо в fb-devel (про создание тикета 5746) и, ответив на него, начать обсуждение.
В самом sourceforge нет педали ответа на это сообщение.
Подскажите пожалуйста, вчера отправлял письмо с темой этого события по адресу почтовой группы fb-devel - оно не приходило?
Если нет, то есть какой-то другой способ кроме ответа на изначальное письмо о создании события (оно не сохранилось)?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604807
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalovВ самом sourceforge нет педали ответа на это сообщение.Там можно только просматривать архив

rashid.abzalovПодскажите пожалуйста, вчера отправлял письмо с темой этого события по адресу почтовой группы fb-devel - оно не приходило?Чтобы письма в fb-devel проходили, нужно сначала подписаться (это элементарная защита от спама)

rashid.abzalovЕсли нет, то есть какой-то другой способ кроме ответа на изначальное письмо о создании события (оно не сохранилось)?Вот тут я не понял вопрос - что именно не сохранилось ?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604810
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalov,

лично я читаю через NNTP news.gmane.org
Настроил себе в Opera Mail. Пишу (редко) туда через него же
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604820
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

очень приблизительно https://www.firebirdsql.org/en/planning-board/
Там несколько раз даты сдвигались
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604823
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladТам можно только просматривать архив.
Чтобы письма в fb-devel проходили, нужно сначала подписаться.

Да, это все понятно - я там зарегистрировался и подписался.

hvladВот тут я не понял вопрос - что именно не сохранилось ?
У меня не сохранилось изначальное письмо, которое пришло после создания события в трекере.
Вчера я отправил письмо по адресу группы с темой события из трекера, которое хотел обсудить, но нет уверенности, что оно разослалось участникам группы. Да и в списке писем на Mailing List его (отправленного вчера сообщения) нет.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604825
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
Как читать понятно, а писать-то как?
Просто отправить произвольное письмо на адрес группы? Нет каких-то условий по наличию значения MessageID в письмах?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604830
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalov,

ну да письма отправляются с моего почтового адреса. В почтовой проге настройки его SMTP сервера
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604831
rashid.abzalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется понял - нужен толстый почтовый клиент, который вытянет последние письма, и уже там отвечать.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604833
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalov,

необязательно, но с почтовым клиентом удобнее. Он темы группирует
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39604960
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисSQL2008,

очень приблизительно https://www.firebirdsql.org/en/planning-board/
Там несколько раз даты сдвигались
Спасибо!
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605241
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисочень приблизительно https://www.firebirdsql.org/en/planning-board/
Полез читать, заинтересовало это - "Timeouts for statements / transactions / connections"
Оно будет говоздем прибито в конфиге или можно будет управлять таймаутами из коннекта?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605262
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExterisОно будет гвоздем прибито в конфиге или можно будет управлять таймаутами из коннекта?
конфиг + переопределение на уровне сессии/запроса
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605276
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris,

скачай снапшот 4.0. Там в папке doc полное описание данной функциональности

README.statement_timeouts
README.session_idle_timeouts
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605372
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисскачай снапшот 4.0. Там в папке doc полное описание данной функциональностиМожно и не скачивая почитать
https://github.com/FirebirdSQL/firebird/blob/master/doc/README.session_idle_timeouts
https://github.com/FirebirdSQL/firebird/blob/master/doc/README.statement_timeouts
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605921
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, почитал.

Есть пара уточняющих вопросов -
1. Если таймаут уровня запроса указан больше, чем таймаут уровня коннекта, то учитывается только таймаут запроса, даже если в коннекте указано меньшее значение?
2. Если произошел таймаут в запросе, то транзакция откатится с ошибкой?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605924
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Как художник художника хочу спросить - вы рисовать умеете?" (с) Остап Берта-Мария Бендер бей.

Коллеги!
Есть у кого-нибудь ссылки на ресурсы по разработке движка FIREBIRD.
Можно не по-русски.

У меня есть некоторые материалы, в том числе видеолекции, но может быть ещё есть что-то полезное?
Остались еще непонятные моменты.
Информации много не бывает.

Заранее спасибо.

P.S. Мимопроходящий! О твоих кровожадных планах я уже в курсе.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605928
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris2. Если произошел таймаут в запросе, то транзакция откатится с ошибкой?
запрос вернет ошибку. Что делать с транзакцией - решает клиент.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605934
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris1. Если таймаут уровня запроса указан больше, чем таймаут уровня коннекта, то учитывается только таймаут запроса, даже если в коннекте указано меньшее значение?
Насколько я понял, пока запрос выполняется сессия ни разу не айдл
doc- when user API call leaves engine, special idle timer assotiated with current connection
is started
- when user API call enters engine, idle timer is stopped

Exteris2. Если произошел таймаут в запросе, то транзакция откатится с ошибкой?
запрос или фетч да, транзакция нет
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39605976
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008> У меня есть некоторые материалы, в том числе видеолекции

Видеолекции "по разработке движка FIREBIRD" ? Потница завтра.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39606115
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris1. Если таймаут уровня запроса указан больше, чем таймаут уровня коннекта, то учитывается только таймаут запроса, даже если в коннекте указано меньшее значение?Да, но только если это значение не ослабляет значение заданное админом в конфиге.

README.statement_timeouts- effective value of timeout is evaluated every time statement starts execution
(or cursor is opened) as:
- if not set at statement level, look at connection level
- if not set at connection level, look at database level
- in any case can't be greater than value set at database level
i.e. value of statement timeout could be overriden by application developer at lower
scope but it can't relax limit set by DBA (in config)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39606117
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев ЕвгенийExteris1. Если таймаут уровня запроса указан больше, чем таймаут уровня коннекта, то учитывается только таймаут запроса, даже если в коннекте указано меньшее значение?
Насколько я понял, пока запрос выполняется сессия ни разу не айдлНе нужно путать таймаут выполнения запроса (statement timeout) и таймаут простоя сессии (idle session timeout)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39607942
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rashid.abzalov Зачем менять gbak - у него свой системный слой, за который он отвечает.
Если на местах кто-то создал свои индексы в системных таблицах, то он сам за ними будет следить.
В других СУБД аналогично.
Вот с этого места поподробнее...
Правильно ли я понял, что пользовательские индексы на системные таблицы при бекапе / ресторе не сохраняются / не восстанавливаются?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39607948
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

правильно
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608000
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Правильно ли я понял, что пользовательские индексы на системные таблицы
при бэкапе бэкапятся юзерские метаданные. Любые обвесы системных таблиц сюда не относятся.
При ресторе сервер создает новую пустую базу , и только потом туда наливает пользовательские метаданные.
Соответственно, "юзерским индексам на системные таблицы" взяться неоткуда.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608010
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv ... сервер создает новую пустую базу ...
Т.е. пустая база создается с "вшитыми" в неё объектами, как-то системными таблицами, индексами, контсрейнами и т.п.? А что "наваял" пользователь остается на его совести?
Это понятно.
P.S. Никогда не приходилось модифицировать системные таблицы.
Это вообще в FIREBIRD практикуется? Есть от этого какая-то выгода?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608014
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

это практиковалось раньше от бедности и служило основной причиной так называемых "невосстановимых" бекапов. В 3.0 практически всё можно сделать через DDL операторы.
Для модификации системных таблиц осталась возможность только удалять исходные тексты ХП/функций/триггеров/пакетов.
И добавление перечисляемых значений в RDB$TYPES
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608026
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто практиковалось раньше от бедности

А ещё раньше, до появления SQL вообще и DDL в частности, это был единственный способ
что-то в базе создать. И с тех пор оно тянется в качестве legacy.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608031
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

не очень понял тебя. Я говорил о примерах когда нельзя было изменить признак NULL/NOT NULL (до 3.0) и ещё раньше DEFAULT.
Разве DDL не является частью SQL?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608034
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисРазве DDL не является частью SQL?

Именно. И появилось оно намного, намного позже системных таблиц. А до тех пор все объекты
создавались с помощью их прямой модификации из GDML. И до сих пор так создаются "унутре",
откуда и проистекает порядочное количество проблем типа всем известной невозможности
создать таблицу и работать с ней в одной транзакции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608128
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, поделитесь, пожалуйста, документом с описанием BLR (binary language representation)
Все ссылаются на http://www.ibphoenix.com/downloads/blr_syntax.pdf ,
но ссылка битая.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608151
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

оно никому не надо.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608183
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvSQL2008,
оно никому не надо.
Что осознать, что вещь не нужна, её нужно потрогать / посмотреть.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608189
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

BLR - это байт-код, исполняемый сервером. При prepare и сохранении процедур, триггеров и view, sql/psql превращается в байт-код. И затем выполняется. Посмотреть его можно элементарно, в ISQL, и в IBE (через просмотр например rdb$procedure_blr в view as blr),
но пользы от этого практически никакой.
Конструировать его самому нельзя, он меняется со временем, от версии к версии, и т.д.
Например
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or alter procedure GET_EMP_PROJ (
    EMP_NO smallint)
returns (
    PROJ_ID char(5))
AS
BEGIN
    FOR SELECT proj_id
        FROM employee_project
        WHERE emp_no = :emp_no
        INTO :proj_id
    DO
        SUSPEND;
END


выглядит как
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
blr_version5,
blr_begin,
   blr_message, 0, 2,0,
      blr_short, 0,
      blr_short, 0,
   blr_message, 1, 3,0,
      blr_text2, 0,0, 5,0,
      blr_short, 0,
      blr_short, 0,
   blr_receive, 0,
      blr_begin,
         blr_declare, 0,0, blr_text2, 0,0, 5,0,
         blr_assignment,
            blr_null,
            blr_variable, 0,0,
         blr_stall,
         blr_label, 0,
            blr_begin,
               blr_begin,
                  blr_label, 1,
                     blr_for,
                        blr_rse, 1,
                           blr_relation, 16, 'E','M','P','L','O','Y','E','E','_','P','R','O','J','E','C','T', 0,
                           blr_boolean,
                              blr_eql,
                                 blr_field, 0, 6, 'E','M','P','_','N','O',
                                 blr_parameter2, 0, 0,0, 1,0,
                           blr_end,
                        blr_begin,
                           blr_assignment,
                              blr_field, 0, 7, 'P','R','O','J','_','I','D',
                              blr_variable, 0,0,
                           blr_begin,
                              blr_send, 1,
                                 blr_begin,
                                    blr_assignment,
                                       blr_variable, 0,0,
                                       blr_parameter2, 1, 0,0, 1,0,
                                    blr_assignment,
                                       blr_literal, blr_short, 0, 1,0,
                                       blr_parameter, 1, 2,0,
                                    blr_end,
                              blr_stall,
                              blr_end,
                           blr_end,
                  blr_end,
               blr_end,
         blr_end,
   blr_send, 1,
      blr_begin,
         blr_assignment,
            blr_variable, 0,0,
            blr_parameter2, 1, 0,0, 1,0,
         blr_assignment,
            blr_literal, blr_short, 0, 0,0,
            blr_parameter, 1, 2,0,
         blr_end,
   blr_end,
blr_eoc


полегчало?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608377
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv полегчало?
Странный вы человек... Приведу аналогию.
Вас спрашивают - "У вас есть телефонный справочник?"
Вы: - "Он никому не нужен"
- "Я посмотрю и сам решу нужен или нет"
Вы: - "Ну вот, к примеру, Иванов Иван Иванович, его телефон 123-45-67! Полегчало?"

Какой-то разговор немого с глухим, ей богу!

И мне нужно соответствие
Что-то типа этого:
BLRarg0arg1arg2arg3Descriptionblr_version5Версия Blrblr_beginНачало описания вызова blr_message 0 20create or alter procedure blr_short 0 blr_short 0 blr_message 1 30 blr_text2 00 50returns (PROJ_ID char(5)) blr_short 0 blr_short 0 blr_receive 0
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608387
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008blr_message ... create or alter procedure

бред собачий. create or alter нигде не сохраняется. В blr хранится только тело процедуры
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608404
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Коллеги, поделитесь, пожалуйста, документом с описанием BLR (binary language representation)
Все ссылаются на http://www.ibphoenix.com/downloads/blr_syntax.pdf,
но ссылка битая. http://www.ibphoenix.com/downloads/isc_docs.zip
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608422
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисSQL2008blr_message ... create or alter procedure

бред собачий. create or alter нигде не сохраняется. В blr хранится только тело процедуры
Я привел просто пример!
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608423
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008Коллеги, поделитесь, пожалуйста, документом с описанием BLR (binary language representation)
Все ссылаются на http://www.ibphoenix.com/downloads/blr_syntax.pdf]http://www.ibphoenix.com/downloads/blr_syntax.pdf] http://www.ibphoenix.com/downloads/blr_syntax.pdf,
но ссылка битая. http://www.ibphoenix.com/downloads/isc_docs.zip
Огромное спасибо!!!
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608442
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Огромное спасибо!!!Не уверен :)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608512
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008- "Я посмотрю и сам решу нужен или нет"
Вы: - "Ну вот, к примеру, Иванов Иван Иванович, его телефон 123-45-67! Полегчало?"
Какой-то разговор немого с глухим, ей богу!
BLR - это не телефонный справочник. А если пользоваться этой аналогией - внутренняя схема коммутации проводов на АТС.
Толку вам от нее абсолютно никакой, потому что вы все равно будете продолжать звонить со своего телефона на конечный телефон.
А если вы попытаетесь перекоммутировать эти самые провода, то у вас фигня получится, даже если есть их описание.

Вы хотите написать декомпилятор? Так для этого можно было взять исходники ФБ, и попробовать типа развернуть компиляцию в BLR в обратную сторону. Но такие герои уже были, и все это ничем не кончилось.
А больше ни для чего другого "описание BLR" не годится.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608519
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvА больше ни для чего другого "описание BLR" не годится.

К сожалению, оно ещё нужно для того, чтобы что-то добавить в птичьи потроха, поскольку
преобразование SQL->executable по-прежнему идёт через промежуточный BLR. И новый SQL
требует порождать для себя BLR ручками в классах типа XXXXNode.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608560
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov К сожалению, оно ещё нужно для того, чтобы что-то добавить в птичьи потроха, поскольку преобразование SQL->executable по-прежнему идёт через промежуточный BLR. И новый SQL
требует порождать для себя BLR ручками в классах типа XXXXNode.
Ровно для этого и нужно!
Хочу добавить свои объекты и их обработку в движок.
Но чтобы это корректно и правильно вписывалось в существующую архитектуру.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608562
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

что за объекты, если не секрет?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608603
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Хочу добавить свои объекты и их обработку в движок.

Ты для начала case-preserved identifiers запили. По твоим словам это быстро.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608675
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSQL2008Хочу добавить свои объекты и их обработку в движок.

Ты для начала case-preserved identifiers запили. По твоим словам это быстро.
Это мне непонятно о чем речь. Разве я где-то хвастался, что могу что-то быстро сделать?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608679
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Это мне непонятно о чем речь. Разве я где-то хвастался, что могу что-то быстро сделать?

21188801
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608680
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисSQL2008,

что за объекты, если не секрет?
Пока попробовал добавить объект JOB по аналогии с PACKAGE, но что-то не срастается.
Вот пытаюсь разобраться почему при компилляции пишет что в parse.h нет такого объекта, если в parse.y, fields.h,ids.h,metd.epp, relations.h, keywords.h все прописал аналогично (ну изменив наименjвание конечно) PACKAGE.
Добавил соответственнно новый JobNodes.epp (аналогично PackageNodes.epp) и включил его обработку в батник.
Но это пока не вопрос на форуме. Мне нужно все самому перепроверить, думаю, что что-то где-то упустил.
Дело-то новое :)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608681
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSQL2008Это мне непонятно о чем речь. Разве я где-то хвастался, что могу что-то быстро сделать?

21188801
И правда было! Так вопрос лишь в этом? А где деньги, ЗИН?
Про энтузиазм я ничего не говорил
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608745
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008 Добавил соответственнно новый JobNodes.epp (аналогично PackageNodes.epp) и включил его обработку в батник.
Но это пока не вопрос на форуме. Мне нужно все самому перепроверить, думаю, что что-то где-то упустил.
Дело-то новое :)
Разобрался!
Забыл включить
Parser.h#include "../dsql/JobNodes.h"
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39621201
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Что может служить причиной сообщения при сборке сервера
SQL> Assertion (absVal(distance) < 128 * 1024) failure: ..\..\..\src\common\classes\alloc.cpp 2613
Вот место, откуда это пришло
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void AutoStorage::ProbeStack() const
{
	//
	// AutoStorage() default constructor can be used only
	// for objects on the stack. ProbeStack() uses the
	// following assumptions to check it:
	//	1. One and only one stack is used for all kind of variables.
	//	2. Objects don't grow > 128K.
	//
	char probeVar = '\0';
	const char* myStack = &probeVar;
	const char* thisLocation = (const char*) this;
	ptrdiff_t distance = thisLocation - myStack;
	fb_assert(absVal(distance) < 128 * 1024);
}
#endif


из сообщения понятно, что разница между указателями thisLocation и myStack не должна превышать 128 кб.
Вопрос - в чем может быть причина? Что смотреть в первую очередь?
Доп. информация - версия 3.0.3, добавлено много функционала, но все компилируется без ошибок.
Только на этапе сборки, при обработке батника создания сообщений ломается на этом ассерте.

P.S. Убедительная просьба - держаться в рамках политеса и правил поведения джентльменов в общественных местах. Работать по алгоритму
Код: plaintext
1.
2.
opinion aboutMe = yourOpibionAboutMe < 0 ? NULL : yourOpibionAboutMe;
TellMeYourOpinion(aboutMe);
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39621206
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008в чем может быть причина?
слишком жирные стековые переменные.
Либо неправильное использование конструкторов, опционально требующих пул.

SQL2008Что смотреть в первую очередь?Стек вызовов, есс-но
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39621210
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008в чем может быть причина?
слишком жирные стековые переменные.
Либо неправильное использование конструкторов, опционально требующих пул.

SQL2008Что смотреть в первую очередь?Стек вызовов, есс-но
Спасибо!
Все перепроверю.
Скорее всего второе.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626866
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброй всем пятницы.
Снова возник вопрос, на который очень хотелось бы получить ответ.
При сборке проекта, на одном из этапов вызывается препроцессор gpre_boot.exe, на вход которому подается файл .epp. Если говорить конкретно, то met.epp.
В тексте файла я вижу строку

Код: sql
1.
DATABASE DB = FILENAME "ODS.RDB";



которая после препроцессинга в файле met.cpp превращается в описание структуры blr.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
/*DATABASE DB = FILENAME "ODS.RDB";*/
static const UCHAR	jrd_0 [121] =
   {	// blr string 
blr_version4,
blr_begin, 
   blr_message, 1, 5,0, 
      blr_cstring2, 3,0, 32,0, 
      blr_cstring2, 3,0, 32,0, 
      blr_long, 0, 
      blr_short, 0, 
      blr_short, 0, 
   blr_message, 0, 1,0, 
      blr_cstring2, 3,0, 32,0, 
   blr_receive, 0, 
...


Но не могу взять в толк, как это происходит.
Хотя бы подскажите где поискать ответ?
Погуглил полдня, но кроме ссылок на описание препроцессора GPRE.EXE ничего не нашел.
В описании тоже нет ничего подобного.
Что все таки означает строка
Код: sql
1.
DATABASE DB = FILENAME "ODS.RDB";


заранее спасибо.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626871
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Но не могу взять в толк, как это происходит.
Хотя бы подскажите где поискать ответ?

Никак. Структура не имеет отношения к данной строчке и порождается из другого кода. В
данном конкретном случае - из "FOR(REQUEST_HANDLE request) DAT IN RDB$DATABASE".

Искать ответ в Embedded SQL Guide.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626875
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008При сборке проекта, на одном из этапов вызывается препроцессор gpre_boot.exeДобавлю, что gpre_boot - это специальная "облегчённая" версия препроцессора, которая использует известные метаданные системных объектов.
Она используется только для первой фазы boot_build, когда полноценный движок ещё не собран и запросы выполнять некому.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626886
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было смутное предположение, что это компилится из
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	FOR(REQUEST_HANDLE handle)
		FLD IN RDB$FIELDS WITH FLD.RDB$FIELD_NAME EQ name.c_str()
	{
		if (DSC_make_descriptor(desc,
								FLD.RDB$FIELD_TYPE,
								FLD.RDB$FIELD_SCALE,
								FLD.RDB$FIELD_LENGTH,
								FLD.RDB$FIELD_SUB_TYPE,
								FLD.RDB$CHARACTER_SET_ID,
								FLD.RDB$COLLATION_ID))
...


Смутило лишь то обстоятельство, что порядок расположения этих блоков не совпадает.
Но видимо у препроцессора иной метод обработки входящего текста.
Спасибо, теперь мне понятно.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626890
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рискну предположить, что все это берется из ..\gen\dbs\METADATA.FDB
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626903
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Было смутное предположение, что это компилится изПосмотри в cpp файле - где используется jrd_0 - станет понятнее
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626923
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот конкретный пример
MET.EPP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
// Pick up relation ids
#include "../jrd/ini.h"

DATABASE DB = FILENAME "ODS.RDB";

using namespace Jrd;
using namespace Firebird;

static int blocking_ast_dsql_cache(void* ast_object);



MET.CPP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
// Pick up relation ids
#include "../jrd/ini.h"

/*DATABASE DB = FILENAME "ODS.RDB";*/
static const UCHAR	jrd_0 [121] =
   {	// blr string 
blr_version4,
blr_begin, 
   blr_message, 1, 5,0, 
.............................................................................
         blr_send, 1, 
            blr_assignment, 
               blr_literal, blr_long, 0, 0,0,0,0,
               blr_parameter, 1, 2,0, 
         blr_end, 
   blr_end, 
blr_eoc

   };	// end of blr string 

using namespace Jrd;
using namespace Firebird;

static int blocking_ast_dsql_cache(void* ast_object);



Препроцессор вставляет сгенерированный код ровно в то место, в котором была строка, закомментировав её.
Код: plaintext
1.
DATABASE DB = FILENAME "ODS.RDB";


Логика мне подсказывает, что именно вследствие обработки этой строки там и появляется этот код.
Опять-таки и вам я не верить не могу... Как-то непонятно мне.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626926
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,


Препроцессор должен где-то разместить "свои" объявления ?
Почему не сделать это в том месте, где он нашёл первую свою директиву ?

Проблема-то в чём ? Не нашёл в коде использования jrd_0 ?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626932
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет декларации структур теперь стало понятно, что препроцессор просто их впихнул в начало файла.

Почему-то jrd_0 оказался самым последним в коде.
Он обрабатывает их в обратной последовательности?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626985
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

честно - по барабану, как он их обрабатывает :)
...
Рейтинг: 0 / 0
116 сообщений из 116, показаны все 5 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разработчик ядра FIREBIRD: первые шаги
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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