|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
Добрался таки до попытки переноса базы с 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 из пустых? Если из пустых таблиц можно, почему из пустых процедур нельзя? Что это за маразм на ровном месте? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:11 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
Hello, Eugenebar! You wrote on 24 мая 2016 г. 13:23:08: Eugenebar> Что это за маразм на ровном месте? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:24 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
Надеюсь, модератор удалит спам от "Идущего в.." Модератор: Модератор поставит галочку у себя в чОрном блокнотике насчёт твоих ".." Картинка модератору нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:34 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarА если можно, то почему нельзя делать select из пустых? Потому, что они не содержат ключевое слово suspend, которое в теле селективных процедур должно быть (но не обязано, как видно из первого примера). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:45 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
rdb_devПотому, что они не содержат ключевое слово suspend Это как-то мешает серверу возвращать пустой набор данных?.. PS: Насколько я помню, данное поведение появилось в целях заботы о мозгах кретинов, которые не понимали, почему им этот самый пустой набор данных возвращается. И является примером случая, когда забота о кретинах вредит всем, включая самих кретинов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 13:59 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
rdb_dev, я понял "принцип" проверки. Но это маразм. С чего то кто-то вдруг решил делить процедуры на два класса, при этом по весьма сомнительному критерию. Селективная процедура, которая ничего не возвращает, это аналог пустой таблицы или пустого view. Если уж захотели делать два вида процедур, то надо было делать это явно - с изменением синтаксиса объявления процедуры. Какой-нибудь "create procedure for select". Правда, непонятно, зачем это вообще нужно и кому. Никаких ошибок с "забыл suspend" в длинной сложной процедуре не предотвращает, зато усложняет жизнь с изменением зависимых процедур. Пустой select допустим в любом месте, сделовательно должен быть допустим select из процедуры, которая не вызывает suspend, следовательно и пустая процедура тоже должна быть допустима! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:00 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarrdb_dev, я понял "принцип" проверки. Но это маразм. С чего то кто-то вдруг решил делить процедуры на два класса, при этом по весьма сомнительному критерию? BY DESIGN ТЧК ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:04 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBar, два варианта: 1. Просить в трекере чтобы отменили ограничения на select из процедур без suspend 2. Просить IbExpert чтобы вместо exit в процедуры болванки у которых есть RETURNS писал suspend. И ещё. Раз уж переходишь с IB 7.1 то почему на 2.5, а не сразу на 3.0? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:06 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarДело в том, что "устаревшая версия" IBExpert-а не работает корректно. Свежую и бесплатную версию (для тех, у кого в ОС используется кодовая страница WIN1251) найдешь здесь: Инструменты администратора и разработчика БД ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:09 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarДобрался таки до попытки переноса базы с IB 7.1 на FB 2.5. Грохнул все метаданные, кроме таблиц, сделал бекап-ресторе. перевод делается не так: - извлекается скрипт - правится (ИБ 7 в скрипте isql тоже ошибки выдает) - проверяется на фб 2.5, правится - данные переливаются из ИБ в ФБ. - проверяются запросы. Собственно, ограничений по кривому SQL и другим вещам в ФБ по сравнению с ИБ довольно много. Так что запрет на "неселективные процедуры" - это еще цветочки (для тебя). ИБ и ФБ разъехались уже давно, в первую очередь по SQL, так что "автоматическую" миграцию с ИБ на ФБ (или обратно) никто не обещал. ФБ 2.5 свои селективные процедуры isql-ом корректно в скрипт сохраняет, с suspend вместо exit. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:11 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
ИБ и ФБ разъехались уже давно, в первую очередь по SQL И много там еще сомнительных фич для "облегчения жизни кретинам", осложняющих всем жизнь? Есть ли разночтения со стандартом SQL "by design"? Такие что простые запросы выполняться не будут? ограничений по кривому SQL С точки зрения теории реляционных баз данных и SQL селект из пустой процедуры - не кривой. Кривой - его запрет, сделанный к тому же кривым способом. перевод делается не так: Да какая разница? Тут главное данные перезалить, чтобы 6 гигов каким-нибудь data-pipe полдня не качать. Понятно, что и новый ibexpert можно скачать, и руками поправить. Но сам маразм "решения" поражает! Если за 5 минут вылезло это, что вылезет дальше? BY DESIGN ТЧК Это ответ не для мыслящего человека, а для кретина. Я не кретин. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:51 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarТут главное данные перезалить, чтобы 6 гигов каким-нибудь data-pipe полдня не качать Жалкие шесть гигов должны перекачаться за считанные минуты на приличном железе. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:54 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
Hello, Eugenebar! You wrote on 24 мая 2016 г. 14:53:50: Eugenebar> С точки зрения теории реляционных баз данных и SQL селект из пустой процедуры... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:56 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarЯ не кретин. Тогда почему ты решил, что перевод БД и приложения с одной СУБД на другую должен быть простым делом, которое тебе по плечу?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 14:57 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarЕсть ли разночтения со стандартом SQL "by design"? Есть ли разночтения со стандартом ANSI SQL? Подобный риторический вопрос - крайне неудачная шутка. Приведи мне пример реальной RDBMS, полностью соответствующей хотя бы ANSI SQL '92. EugeneBarЕсли за 5 минут вылезло это, что вылезет дальше? Кто сказал, что миграция с одной платформы на другую, при их лишь частичной совместимости, это легко? Интересно, что ты "запоешь", наткнувшись на обращение к таблицам TMP(IB)/MON(FB)... ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:04 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
Мешать реляционные БД, процедуры и стандарт SQL в одну кучу, и делать свои выводы - не хорошо. И кстати, шаблоны создания процедур (и вообще всего) в IBExpert настраиваются. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:04 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, речь идет даже не сложности или простоте перехода, а о маразматичности этого запрета на селект из пустых процедур. с одной СУБД на другую Не разные СУБД, а разные версии одной CУБД. Или ты хочешь сказать, что 2.5 про сравнению со, скажем 1.5 это все равно что какой-нибудь Oracle или MS SQL? Жалкие шесть гигов должны перекачаться за считанные минуты на приличном железе. Это не нужно - через ресторе данные перенеслись. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:07 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarДобрался таки до попытки переноса базы с IB 7.1 на FB 2.5. EugeneBarНе разные СУБД, а разные версии одной CУБД. Interbase и Firebird это разные СУБД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:10 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarИли ты хочешь сказать, что 2.5 про сравнению со, скажем 1.5 это все равно что какой-нибудь Oracle или MS SQL?Собственно, очень многое переработано за 5 лет между ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:15 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
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). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:22 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:30 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
в 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) ну и еще много всякой мелочи. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:38 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
kdv, 1. Спасибо за ответ по существу. 2. Перелопачиванием базы и программы занимаюсь давно.. Сама база сделана без особых фич, без всяких временных таблиц и других нововведений, единственно - используется rows, но его вроде как в FB 2.5 добавили. Вообще, там почти все на уровне прадедушки - IB 5. наткнувшись на обращение к таблицам TMP(IB)/MON(FB)... ;) Ничего не скажу, т. к. знаю что таких обращений в этой базе НЕТ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:41 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBarЕсть ли разночтения со стандартом SQL "by design"? каким ещё стандартом? Ну появились недавно ХП в стандарте, причём в некоторых СУБД они появились на 20 лет раньше. Стандарт вообще не подразумевает селективных хранимых процедур. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:46 |
|
Знакомство с Firebird 2.5 - и сразу маразм с запретом select из пустых процедур
|
|||
---|---|---|---|
#18+
EugeneBar... речь идет даже не сложности или простоте перехода, а о маразматичности этого запрета на селект из пустых процедур. ... Так ты надеешься отменить запрет, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:51 |
|
|
start [/forum/topic.php?fid=40&msg=39242409&tid=1562162]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 174ms |
0 / 0 |