|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Дениса как раз ограничения от доменов в PSQL часто мешают. Особенно какой-нибудь NOT NULLНикогда не ставлю доменам NOT NULL. Вот уж действительно - бесполезная глупость. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:12 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_dev, и кстати домен это не тип данных!!! Это просто тиражируемое ограничение на столбец, чтобы многократно можно было использовать в нескольких таблицах. По доброте душевной их дали использовать в PSQL, хотя самое правильное делать TYPE OF DOMAIN или TYPE OF COLUMN, а как раз ограничения от доменов в PSQL часто мешают. Особенно какой-нибудь NOT NULL kdvp.s. нунах... +100500 сейчас и пишем TYPE OF DOM$BOOLEAN ограничение для микросправочника TYPE OF CHECK(value in (0,1)) не помешало бы. с другой стороны, тип данных переменной определяется на этапе компиляции процедуры, а вот условия - на момент выполнения. да еще на каждый чих. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:17 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
pastorс другой стороны, тип данных переменной определяется на этапе компиляции процедуры, а вот условия - на момент выполнения. да еще на каждый чих. вот именно. Потом какой-нибудь одарённый разработчик воткнёт в CHECK запрос и начнёт спрашивать, а почему всё так тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:25 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Денис, так ведь втыкают и тормозит, если рукожопы... Разве нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:28 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
не сорите идеями. заинтересуйте материально. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:32 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
pastor, до появления BOOLEAN примерно так и делал: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:34 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_devа как CHECK выглядит для домена, который, к примеру, используется только в DECLARE VARIABLE? Никак. Он тупо игнорируется как в MySQL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:57 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_devpastor, до появления BOOLEAN примерно так и делал: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
домен DMN_BOOLEAN начали использовать еще до появления дурацких кавычек. живем как-то. только хватило ума не делать его строковым. и не смешивать DEFAULT с NULLABLE. там где он может быть NULL, там будет другой домен, без додуманного бабским ИИ значением по умолчанию. и не писать для каждого столбца not null. память слаба, да и пальцы нефиг бить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 15:59 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, у них уже домены появились? Насколько я понимаю они и CHECK то совсем недавно прикрутили ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:03 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов ДенисНасколько я понимаю они и CHECK то совсем недавно прикрутили Насколько я в курсе - таки не прикрутили. Синтаксис есть, а не работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:06 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, нет, он не игнорируется, а работает как должен. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Результат: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:06 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_dev, ну и используй себе домены. Зачем тебе CHECK по месту определять? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:21 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Денис, есть ещё один очень интересный момент: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:42 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_dev, ну и используй себе домены. Зачем тебе CHECK по месту определять?В переводе это означает - "определяй домен на каждый чих" или "определяй свой EXCEPTION для каждого чиха и собирай для этого EXCEPTION описательное сообщение". Супер! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:47 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_dev, потому что ты пытаешься сделать фигню. Вот объясни зачем тебе на вычисляемое поле нужен CHECK? Геморроя заработать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:47 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_dev, потому что ты пытаешься сделать фигню. Вот объясни зачем тебе на вычисляемое поле нужен CHECK? Геморроя заработать?Это был пример не столько про сам CHECK, сколько про реализованный синтаксис. У тебя не возник когнитивный диссонанс при просмотре примера и сравнения работающих и неработающих объявлений? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:50 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_dev, какая разница где ты проверку сделаешь в DECLARE или в IF? Экономия на спичках? И да своё сообщение лучше. Был даже тикет чтобы к чекам определённое пользователем сообщение делать, но не сделали. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:52 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_devВ переводе это означает - "определяй домен на каждый чих"Сервер и так это делает на каждый чих, достаточно посмотреть список доменов включая системные. Ну будет там чуть больше пользовательских и чуть меньше системных, в результате серверу пофиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:57 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_dev, какая разница где ты проверку сделаешь в DECLARE или в IF? Экономия на спичках? И да своё сообщение лучше. Был даже тикет чтобы к чекам определённое пользователем сообщение делать, но не сделали.Меня вполне устраивает стандартное сообщение об ошибке вида: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 19:34 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, понятно! Как обычно, предлагается топтать батоны для описания доменов на каждый чих, пока не з... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 19:35 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
Симонов ДенисИ да своё сообщение лучше. Был даже тикет чтобы к чекам определённое пользователем сообщение делать, но не сделали.Вы же сами много раз убеждали, что прежде, чем писать тикет в трэкер, лучше, для начала, обсудить здесь. У вас семь пятниц на неделе! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 19:36 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_dev, по поводу обсуждения фич я свою точку зрения не изменил. Не знаю где ты увидел это. Тикет тот создавал не я. Создан он был очень давно, был даже в планах на тройку, но потом отказались. И да моё мнение предлагаемая фича (DECLARE ... CHECK), может и не навредит, но никому на фиг не упала. Что-то не увидел здесь никого кто бы тебя поддержал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 19:51 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
rdb_dev, МЛЯ (не знаю, как еще привлечь внимание, кроме как большими буквами). Вот вы чего хотите получить этим check для declare variable? Например, если в переменную засовывать входной параметр процедуры, то есть шанс, что во входной параметр засунется что-то неприличное для variable? Или, у столбца, куда будет пихаться variable нет такого ограничения? Я пытаюсь понять, откуда ноги у этого бреда растут. Я еще раз повторю, что у переменных компилируемых ЯП, да и интерпретируемых тоже, нет никаких check constraints. Check constraints - для столбцов таблиц. Здесь аналогия - экземпляр класса с методами, ограничивающими значения переменных класса методами set/get. Check в данном случае как "метод класса", то есть триггер на таблице. Какой такой великий смысл должен иметь check у variable процедуры или триггера? Проверка на недопустимость передаваемых в процедуру значений? Проверка на недопустимость читаемых из таблицы значений? Проверка на недопустимость записываемых в таблицу значений? Откуда вообще вот эти программерские закидоны? p.s. да, я минималист и ортодокс. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 21:42 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
kdv, он их ещё и к вычисляемым столбцам прикрутить пытается. Сего замысла я понять не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 22:04 |
|
Сто тысяч "Почему так реализовано?"
|
|||
---|---|---|---|
#18+
kdvВот вы чего хотите получить этим check для declare variable? Я так думаю - он боится забыть переменную инициализировать. И хочет чтобы при первом же использовании в выражениях оно матюкнулось мнэээ... выразилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 22:41 |
|
|
start [/forum/topic.php?fid=40&msg=39865747&tid=1560567]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 173ms |
0 / 0 |