powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
25 сообщений из 144, страница 1 из 6
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242150
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрался таки до попытки переноса базы с IB 7.1 на FB 2.5. Грохнул все метаданные, кроме таблиц, сделал бекап-ресторе.
Для восстановления метаданных решил воспользоваться простейшим способом - сравнением в IBExpert. И тут посыпались ошибки.

Оказывается, если в процедуре нету suspend то в 2.5 из нее нельзя сделать select. Поскольку IBExpert сначала создает alter все процедуры с пустым телом, а потом делает alter, на select-ах из "неправильных" процедур летят ошибки - их не дает создать.

Дело в том, что "устаревшая версия" IBExpert-а не работает корректно. И даже не в том, что стандартный в общем то способ изменения процедур, у которых есть зависимости перестал работать - теперь надо suspend добавлять вручную в конец а потом удалять. Зачем и кому надо усложнять работу программиста?

Главное - ни от чего эта проверка не спасает. Из такой процедуры select делать не дает:

CREATE PROCEDURE A
RETURNS (
ID INTEGER)
AS
begin
exit;
end

А из такой дает

CREATE PROCEDURE A
RETURNS (
ID INTEGER)
AS
begin
if (1=0) then
suspend;
else
exit;
end

И кто вообще сказал, что из процедур, которые могут ничего не вернуть нельзя делать select? А если можно, то почему нельзя делать select из пустых? Если из пустых таблиц можно, почему из пустых процедур нельзя?

Что это за маразм на ровном месте?
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242166
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Eugenebar!
You wrote on 24 мая 2016 г. 13:23:08:

Eugenebar> Что это за маразм на ровном месте?
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242177
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надеюсь, модератор удалит спам от "Идущего в.."
Модератор: Модератор поставит галочку у себя в чОрном блокнотике насчёт твоих ".."
Картинка модератору нравится.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242197
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarА если можно, то почему нельзя делать select из пустых?
Потому, что они не содержат ключевое слово suspend, которое в теле селективных процедур должно быть (но не обязано, как видно из первого примера).
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242228
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devПотому, что они не содержат ключевое слово suspend
Это как-то мешает серверу возвращать пустой набор данных?..

PS: Насколько я помню, данное поведение появилось в целях заботы о мозгах кретинов,
которые не понимали, почему им этот самый пустой набор данных возвращается. И является
примером случая, когда забота о кретинах вредит всем, включая самих кретинов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242229
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev, я понял "принцип" проверки. Но это маразм. С чего то кто-то вдруг решил делить процедуры на два класса, при этом по весьма сомнительному критерию. Селективная процедура, которая ничего не возвращает, это аналог пустой таблицы или пустого view.

Если уж захотели делать два вида процедур, то надо было делать это явно - с изменением синтаксиса объявления процедуры. Какой-нибудь "create procedure for select". Правда, непонятно, зачем это вообще нужно и кому. Никаких ошибок с "забыл suspend" в длинной сложной процедуре не предотвращает, зато усложняет жизнь с изменением зависимых процедур.

Пустой select допустим в любом месте, сделовательно должен быть допустим select из процедуры, которая не вызывает suspend, следовательно и пустая процедура тоже должна быть допустима!
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242238
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarrdb_dev, я понял "принцип" проверки. Но это маразм. С чего то кто-то вдруг решил делить процедуры на два класса, при этом по весьма сомнительному критерию?

BY DESIGN
ТЧК
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242245
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBar,

два варианта:

1. Просить в трекере чтобы отменили ограничения на select из процедур без suspend
2. Просить IbExpert чтобы вместо exit в процедуры болванки у которых есть RETURNS писал suspend.

И ещё. Раз уж переходишь с IB 7.1 то почему на 2.5, а не сразу на 3.0?
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242247
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarДело в том, что "устаревшая версия" IBExpert-а не работает корректно.
Свежую и бесплатную версию (для тех, у кого в ОС используется кодовая страница WIN1251) найдешь здесь:
Инструменты администратора и разработчика БД
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242252
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarДобрался таки до попытки переноса базы с IB 7.1 на FB 2.5. Грохнул все метаданные, кроме таблиц, сделал бекап-ресторе.
перевод делается не так:
- извлекается скрипт
- правится (ИБ 7 в скрипте isql тоже ошибки выдает)
- проверяется на фб 2.5, правится
- данные переливаются из ИБ в ФБ.
- проверяются запросы.

Собственно, ограничений по кривому SQL и другим вещам в ФБ по сравнению с ИБ довольно много. Так что запрет на "неселективные процедуры" - это еще цветочки (для тебя).
ИБ и ФБ разъехались уже давно, в первую очередь по SQL, так что "автоматическую" миграцию с ИБ на ФБ (или обратно) никто не обещал.

ФБ 2.5 свои селективные процедуры isql-ом корректно в скрипт сохраняет, с suspend вместо exit.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242332
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИБ и ФБ разъехались уже давно, в первую очередь по SQL

И много там еще сомнительных фич для "облегчения жизни кретинам", осложняющих всем жизнь?
Есть ли разночтения со стандартом SQL "by design"? Такие что простые запросы выполняться не будут?

ограничений по кривому SQL

С точки зрения теории реляционных баз данных и SQL селект из пустой процедуры - не кривой. Кривой - его запрет, сделанный к тому же кривым способом.

перевод делается не так:

Да какая разница? Тут главное данные перезалить, чтобы 6 гигов каким-нибудь data-pipe полдня не качать. Понятно, что и новый
ibexpert можно скачать, и руками поправить. Но сам маразм "решения" поражает! Если за 5 минут вылезло это, что вылезет дальше?

BY DESIGN
ТЧК


Это ответ не для мыслящего человека, а для кретина. Я не кретин.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242336
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarТут главное данные перезалить, чтобы 6 гигов каким-нибудь data-pipe полдня
не качать
Жалкие шесть гигов должны перекачаться за считанные минуты на приличном железе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242339
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Eugenebar!
You wrote on 24 мая 2016 г. 14:53:50:

Eugenebar> С точки зрения теории реляционных баз данных и SQL селект из пустой процедуры...
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242341
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarЯ не кретин.
Тогда почему ты решил, что перевод БД и приложения с одной СУБД на другую должен быть
простым делом, которое тебе по плечу?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242354
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarЕсть ли разночтения со стандартом SQL "by design"?
Есть ли разночтения со стандартом ANSI SQL? Подобный риторический вопрос - крайне неудачная шутка. Приведи мне пример реальной RDBMS, полностью соответствующей хотя бы ANSI SQL '92.

EugeneBarЕсли за 5 минут вылезло это, что вылезет дальше?
Кто сказал, что миграция с одной платформы на другую, при их лишь частичной совместимости, это легко? Интересно, что ты "запоешь", наткнувшись на обращение к таблицам TMP(IB)/MON(FB)... ;)
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242355
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мешать реляционные БД, процедуры и стандарт SQL в одну кучу, и делать свои выводы - не хорошо.
И кстати, шаблоны создания процедур (и вообще всего) в IBExpert настраиваются.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242358
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

речь идет даже не сложности или простоте перехода, а о маразматичности этого запрета на селект из пустых процедур.
с одной СУБД на другую

Не разные СУБД, а разные версии одной CУБД. Или ты хочешь сказать, что 2.5 про сравнению со, скажем 1.5 это все равно что какой-нибудь Oracle или MS SQL?

Жалкие шесть гигов должны перекачаться за считанные минуты на приличном железе.

Это не нужно - через ресторе данные перенеслись.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242367
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarДобрался таки до попытки переноса базы с IB 7.1 на FB 2.5.
EugeneBarНе разные СУБД, а разные версии одной CУБД.
Interbase и Firebird это разные СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242377
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarИли ты хочешь сказать, что 2.5 про сравнению со, скажем 1.5 это все равно что какой-нибудь Oracle или MS SQL?Собственно, очень многое переработано за 5 лет между ними.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242389
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarИ много там еще сомнительных фич для "облегчения жизни кретинам", осложняющих всем жизнь?
см. файл README.incompatibilities.txt в папке установки, /doc/
правда, у 2.5 там несовместимости между 2.х и 2.5 описаны, так что, придется тебе еще копать релизноты от 1.5, 2.0 и 2.1
EugeneBarЕсть ли разночтения со стандартом SQL "by design"? Такие что простые запросы выполняться не будут?
видишь-ли, InterBase что в 7.5, что сейчас, допускал и допускает много идиотских запросов (по синтаксису), которые либо не соответствуют стандарту, либо выполняются не так, как должны. В Firebird такие закидоны по большей части искоренены.
EugeneBarТут главное данные перезалить, чтобы 6 гигов каким-нибудь data-pipe полдня не качать.
Мы делали перевод базы одной конторе, с Firebird 1.5 на Firebird 2.5.
http://www.slideshare.net/mindthebird/migration-from-firebird-15-to-firebird-25
Перевод занял 4 месяца кропотливой работы. Конечно, база - базе рознь, но ты-то переходишь даже не с ФБ, а с ИБ, и надеешься обойтись одним только b/r?
EugeneBarНе разные СУБД, а разные версии одной CУБД. Или ты хочешь сказать, что 2.5 про сравнению со, скажем 1.5 это все равно что какой-нибудь Oracle или MS SQL?
еще раз повторяю - InterBase и Firebird уже давно разъехались не просто по формату БД, а по фичам, и особенно по SQL (Firebird). К примеру, Влад Хорсун на конференции по Firebird 2.0 читал доклад по новым фичам SQL 2.5 часа, и то не успел все рассказать. И ни одной этой фичи, насколько я в курсе, до сих пор в InterBase нет (кроме execute statement).
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242397
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryСобственно, очень многое переработано за 5 лет между ними.
да какие 5 лет. Отличия начались уже в InterBase 7.0 (тип boolean) и Firebird 1.5, а это 2002-2004 года, то есть уже 12 лет.

to EugeneBar:
отличия ФБ 2.5 от ИБ 6:
http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/Firebird-2_5-LangRef-Update-Russian.pdf

364 страницы!

на всякий случай
отличия ФБ 1.5 от ИБ 6:
http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd15.html
отличия ФБ 2.0 от ИБ 6:
http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd20.html
отличия ФБ 2.1 от ИБ 6:
http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd21.html

все ссылки дал для того чтобы оценить. Наиболее полно, конечно, изложено в отличиях 2.5.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242409
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в InterBase со времен 7.х появилось, чего нет в ФБ или есть только похожее
- tmp$ (в firebird аналог позже, mon$)
- embedded user authentification (нечто похожее - только в Firebird 3.0)
- управление кэшем БД (в Firebird 3.0 - Linger)
- online dump (в ФБ 2.1 близкий аналог - nbackup)
- журналирование, архивы журналов
- шифрование соединения, БД и столбцов (в ФБ 3.0 - поддержка плагинов для шифрования БД, шифрование соединения)
- execute statement (начиная с XE, уже давно есть в FB)
- change views
- распараллеливаемый суперсервер (в ФБ 3.0)

ну и еще много всякой мелочи.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242411
EugeneBar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

1. Спасибо за ответ по существу.
2. Перелопачиванием базы и программы занимаюсь давно.. Сама база сделана без особых фич, без всяких временных таблиц и других нововведений, единственно - используется rows, но его вроде как в FB 2.5 добавили. Вообще, там почти все на уровне прадедушки - IB 5.

наткнувшись на обращение к таблицам TMP(IB)/MON(FB)... ;)

Ничего не скажу, т. к. знаю что таких обращений в этой базе НЕТ.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242419
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBarЕсть ли разночтения со стандартом SQL "by design"?

каким ещё стандартом? Ну появились недавно ХП в стандарте, причём в некоторых СУБД они появились на 20 лет раньше.
Стандарт вообще не подразумевает селективных хранимых процедур.
...
Рейтинг: 0 / 0
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
    #39242428
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneBar...
речь идет даже не сложности или простоте перехода, а о маразматичности этого запрета на селект из пустых процедур.
...
Так ты надеешься отменить запрет, что ли?
...
Рейтинг: 0 / 0
25 сообщений из 144, страница 1 из 6
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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