Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур / 25 сообщений из 144, страница 1 из 6
24.05.2016, 13:11
    #39242150
EugeneBar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
Добрался таки до попытки переноса базы с 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
24.05.2016, 13:24
    #39242166
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
Hello, Eugenebar!
You wrote on 24 мая 2016 г. 13:23:08:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BY DESIGN
ТЧК


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

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

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

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

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

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

Это не нужно - через ресторе данные перенеслись.
...
Рейтинг: 0 / 0
24.05.2016, 15:10
    #39242367
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
EugeneBarДобрался таки до попытки переноса базы с IB 7.1 на FB 2.5.
EugeneBarНе разные СУБД, а разные версии одной CУБД.
Interbase и Firebird это разные СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.05.2016, 15:15
    #39242377
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
EugeneBarИли ты хочешь сказать, что 2.5 про сравнению со, скажем 1.5 это все равно что какой-нибудь Oracle или MS SQL?Собственно, очень многое переработано за 5 лет между ними.
...
Рейтинг: 0 / 0
24.05.2016, 15:22
    #39242389
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
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
24.05.2016, 15:30
    #39242397
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
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
24.05.2016, 15:38
    #39242409
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
в 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
24.05.2016, 15:41
    #39242411
EugeneBar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
kdv,

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

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

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

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


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