Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK? / 24 сообщений из 24, страница 1 из 1
03.08.2016, 09:21
    #39285100
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Приветствую, форумяне!

Порой не хватает вразумительного сообщения на исключение на неудачу при проверке ограничения CHECK, вместо стандартного сообщения. Предлагаю расширить объявление CONSTRAINT (можно и не только CHECK) примерно до следующего вида:
Код: sql
1.
CONSTRAINT <constraint_name> CHECK (<bool_exp>) [ON FAIL EXCEPTION <exception_name>]

Вопрос адресован, конечно, разработчикам, но обсуждение "надо/не надо" никто не запрещал.
...
Рейтинг: 0 / 0
03.08.2016, 09:33
    #39285107
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

WHEN чем не устроил?
...
Рейтинг: 0 / 0
03.08.2016, 09:34
    #39285108
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

такая хотелка уже была, но только для Foreign Key CORE-736 . Первоначально даже была запланирована на 3.0, но ближе к Альфе её сняли.
...
Рейтинг: 0 / 0
03.08.2016, 09:35
    #39285110
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

кстати для FK она более полезна. CHECK всегда можно заменить триггером
...
Рейтинг: 0 / 0
03.08.2016, 09:37
    #39285112
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
DarkMaster, если таблице, вдруг, не нужны триггеры, то писать отдельно триггер, чтобы выбросить вразумительное исключение, как-то не комильфо, на мой взгляд.
...
Рейтинг: 0 / 0
03.08.2016, 09:39
    #39285115
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денис, а можно снова поднять этот вопрос, но уже для всех ограничений (PK, FK, UQ, CHK)?
...
Рейтинг: 0 / 0
03.08.2016, 09:40
    #39285116
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

как хочешь. Ссылку на тикет я уже привёл. Можешь дописать туда коммент и проголосовать. Создавать ещё 3 отдельных тикета не вижу смысла
...
Рейтинг: 0 / 0
03.08.2016, 09:40
    #39285117
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денис, ясно, спасибо!
...
Рейтинг: 0 / 0
03.08.2016, 09:41
    #39285118
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денисrdb_dev,

кстати для FK она более полезна. CHECK всегда можно заменить триггером

и то и другое делается через COMMENT ON.

имя FK или CHECK парсятся из сообщения об ошибке, далее запрашивается комментарий et voila.
...
Рейтинг: 0 / 0
03.08.2016, 09:43
    #39285120
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
pastor, с костылями давно и сразу всё понятно. Спасибо!
...
Рейтинг: 0 / 0
03.08.2016, 09:47
    #39285124
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

на самом деле случаев нарушения FK может быть довольно много, одним сообщением там не обойтись. Это будет весьма сильно уродовать синтаксис. Для CHECK там хоть всё ясно. Для PK, UK вроде тоже один случай, хотя может что и забыл. Да и кстати есть ещё NOT NULL. Тоже туда сообщение писать?

В стандарте ничего такого вроде не предусмотрено, так что скорее всего опять откажут.
...
Рейтинг: 0 / 0
03.08.2016, 09:54
    #39285127
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денис, на NOT NULL, ИМХО, большого смысла нет, так как очевидность сообщения такого исключения, обычно, не вызывает неопределенности в трактовке.
...
Рейтинг: 0 / 0
03.08.2016, 09:56
    #39285129
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов ДенисВ стандарте ничего такого вроде не предусмотрено, так что скорее всего опять откажут.
Почему нужно делать всё исключительно по стандарту, если в стандарте об этом может быть не сказано вовсе? Тем более, что стандарт, при этом, не пострадает, а лишь будет дополнен собственным решением.
...
Рейтинг: 0 / 0
03.08.2016, 09:57
    #39285131
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

сначала придумай синтаксис на FK к примеру. Только сразу подо все случаи.
...
Рейтинг: 0 / 0
03.08.2016, 10:02
    #39285133
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денис, про "все случаи" не понял. Какие еще могут быть варианты при неудовлетворении ссылочной целостности FK?
...
Рейтинг: 0 / 0
03.08.2016, 10:03
    #39285134
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

когда разработчики хотят внедрить новую SQL фичу они
1. Смотрят есть ли это в стандарте
2. если нет в стандарте, то смотрят а нет ли чего похожего в других СУБД, и адаптируют под FB (чаще всего чтобы соответствовало PSQL)
3. Если нет придумывают свой синтаксис

До 3 на практике почти никогда не доходит, потому как для этого нужны весьма убедительные аргументы.
...
Рейтинг: 0 / 0
03.08.2016, 10:07
    #39285135
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_dev,

1. Удаление из master таблицы без предложения ON DELETE CASCADE и т.п.
2. Обновление ключа мастер таблицы без предложения ON UPDATE CASCADE и т.п.
3. Попытка вставки/обновления FK на значение не существующее в master таблице
...
Рейтинг: 0 / 0
03.08.2016, 10:08
    #39285137
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
по этой фиче вроде как было "добро" (по крайней мере у меня не было возражений), просто некогда ей заниматься
...
Рейтинг: 0 / 0
03.08.2016, 10:09
    #39285139
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денискогда разработчики хотят внедрить новую SQL фичу они
1. Смотрят есть ли это в стандартеК сожалению, не имею такой возможности, так как не имею текста стандарта, а платить за него почти 400 швейцарских франков из своего кармана я не готов.

Симонов Денис2. если нет в стандарте, то смотрят а нет ли чего похожего в других СУБД, и адаптируют под FB (чаще всего чтобы соответствовало PSQL)
3. Если нет придумывают свой синтаксисЯ же не настаиваю исключительно на своем варианте синтаксиса и привел его только в качестве примера. Разумеется, разработчики могут реализовать это по своему усмотрению. Лишь бы было.
...
Рейтинг: 0 / 0
03.08.2016, 10:10
    #39285140
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
dimitr,

сколько по FK может быть случаев нарушений?
...
Рейтинг: 0 / 0
03.08.2016, 10:12
    #39285142
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Симонов Денис1. Удаление из master таблицы без предложения ON DELETE CASCADE и т.п.
2. Обновление ключа мастер таблицы без предложения ON UPDATE CASCADE и т.п.
3. Попытка вставки/обновления FK на значение не существующее в master таблицеНу, да... Про исключение при каскадном обновлении/удалении я, как-то, сразу и не вспомнил.
...
Рейтинг: 0 / 0
03.08.2016, 10:16
    #39285145
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
dimitrпо этой фиче вроде как было "добро" (по крайней мере у меня не было возражений), просто некогда ей заниматьсяТак никто и не торопит с реализацией. Главное, чтоб разработчики об этой фиче не забыли и, таки, реализовали её в обозримом будущем.
...
Рейтинг: 0 / 0
03.08.2016, 11:59
    #39285215
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
rdb_devГлавное, чтоб разработчики об этой фиче не забыли и, таки, реализовали её в обозримом будущем.

А пойти и реализовать самому?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.08.2016, 19:54
    #39285714
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK?
Dimitry Sibiryakov, пойти - в смысле "на" или "в"? К сожалению, в моем распоряжении нет пары-тройки лишних месяцев ковыряться в потрохах FirebirdSQL сервера и исследовать биопсии его органов.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Есть предложение по расширению выбрасывания исключения при неудачи ограничения CHECK? / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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