|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdv, ну значит там разобрались что я имел ввиду и поправили ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:02 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов Денис, ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:03 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdv> какого, нафиг, перевода? русский LR первичен :) Русский LR (может, не конечный, но его куски и более ранние LR) были как раз переводами с английских LRU. В любом случае, надо о контенте думать, а не кто у кого перевёл неверно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:04 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, не могло быть этого в LRU, ибо эта часть в FB не менялась ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:06 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
shalamyansky, я не знаю, где у вас "интуитивно по синтаксису ожидается". Тут уже отписались на эту тему, но я добавлю объяснение if a = 5 then b:=10; если a = 4 - что будет в переменной b? Вот тут абсолютно так же - если записей не было, то ничего и не присваивается переменной. p.s. да, в доке, в разделе INTO, это должно быть написано, потому что этот вопрос реально задолбал. И я у себя про него отписывал - раздел "обработка данных..." в http://www.ibase.ru/sp_call/ ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:07 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов Денис> не могло быть этого в LRU, ибо эта часть в FB не менялась Именно этот абзац - ХЗ. Аналогичные куски текста есть, например, в описании ES и если вы не пользуетесь копипастом (ручным или профессиональным в соотв. ПО) - то делаете что-то не так. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:29 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, ну ES то был сделан в Firebird, а SELECT в процедурах со времён IB ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 17:46 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов Денис> ну ES то был сделан в Firebird, а SELECT в процедурах со времён IB И именно поэтому он есть в LRU и поведение синглтона в обоих случаях идентично (по крайней мере, в обсуждаемом контексте). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:07 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, исправлю ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:15 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
WildSeryКстати, в документации к Postgre, там, где into не табличный, явно написано, что into :var присваивает null, если выборка пустая. Какие жалкие людишки копаются в этом постгрессе. Нет чтобы обозвать пользователей дураками и лентяями и послать их на три полярные экспедиции ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:20 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
чччДВ документации фраза есть: Стр. 295Простой оператор SELECT может быть использован в PSQL, только если он возвращает единственную строку, то есть, если это запрос типа синглтон (singleton). Тут просто складывают яблоки с апельсинами. На самом деле есть ДВА способа использовать бесцикловый SELECT внутри PSQL, и у них вообще говоря возможно разное поведение при "особых случаях". Я два раза уже называл эти разные способы выше Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
А вообще, действительно интересно, что *по стандарту* должно возвращать выражение "(select ....)" если записей нет вообще - NULL или ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:38 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdvif a = 5 then b:=10; если a = 4 - что будет в переменной b? Вот тут абсолютно так же Да нет тут никакого "абсолютно так же". Нету у топикстартера ни цикла, не ветвления, НЕ-ТУ. Разговор примерно такой: - Если я зимой на бетон уроню банку с бензином - он загорится? - Что будет, если ты уронишь в банку с бензином тлеющий окурок, а потом выронишь саму банку? Загорится? Ну вот в твоей случае "абсолютно так же" (С) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:42 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch, Тут случай, когда select используется с into, так что ты э... гонишь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:47 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
WildSeryУ кого стандарт SQL под рукой есть? Там в SELECT INTO что-то сказано по поводу пустых запросов? В стандарте INTO вообще в другом месте ставится Но поведение FB в связи с INTO вроде бы правильное, если потмо в стандарте ничего не поменяли ISO/IEC 9075-2:1999 (E) 14.5 <select statement: single row> Data manipulation p.665 ...... Format <select statement: single row> ::= SELECT [ <set quantifier> ] <select list> INTO <select target list> <table expression> ..... <table expression> ::= <from clause> [ <where clause> ] [ <group by clause> ] [ <having clause> ] ....... a) If the cardinality of Q is greater than 1 (one), then an exception condition is raised: car- dinality violation. It is implementation-dependent whether or not SQL-data values are assigned to the targets identified by the <select target list>. b) If Q is empty, then no SQL-data values are assigned to any targets identified by the <select target list>, and a completion condition is raised: no data. c) Otherwise, values in the row of Q are assigned to their corresponding targets ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:49 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
чччДТут случай, когда select используется с into, так что ты э... гонишь. :) и что, там от этого цикл вырос? не вырос. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 18:50 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch... a) If the cardinality of Q is greater than 1 (one), then an exception condition is raised: car- dinality violation. It is implementation-dependent whether or not SQL-data values are assigned to the targets identified by the <select target list>. b) If Q is empty, then no SQL-data values are assigned to any targets identified by the <select target list>, and a completion condition is raised: no data. c) Otherwise, values in the row of Q are assigned to their corresponding targets Т.е., поведение правильное, лишь отразить в доке сие требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:13 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
AriochДа нет тут никакого "абсолютно так же". Нету у топикстартера ни цикла, не ветвления, НЕ-ТУ. ну как нету. если_есть_результат то присвоить_значение_переменной Соответственно, когда результата_нет , ничего не присваивается. AriochНет чтобы обозвать пользователей дураками и лентяями и послать их на три полярные экспедиции я не понимаю, чего ты хочешь. Симонов уже сказал, что документацию поправит. Что еще? AriochЯ два раза уже называл эти разные способы выше я не вижу разницы в этих способах. Нет результата - ничего не присваивается. Есть результат - присваивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:22 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
чччД, угу. Также и с выражениями вроде бы корректно (хотя я бы распял рас шесть тех, кто стандарт писал. Это явно аннунаки с другой галактики были, найти в нём что-то не вывихнув остатки черепа.... Ну да ладно, пустое). Но в доке тоже надо отобразить. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Первое вернёт NULL, а второе - 10. SQL 1999-2 2) Let SS be a <scalar subquery>. Case: a) If the cardinality of SS is greater than 1 (one), then an exception condition is raised: cardi- nality violation. b) If the cardinality of SS is 0 (zero), then the value of the <scalar subquery> is the null value . c) Otherwise, let C be the column of <query expression> simply contained in SS. The value of SS is the value of C in the unique row of the result of the <scalar subquery>. Query expressions p.283 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:36 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
WildSery > У кого стандарт SQL под рукой есть? Там в SELECT INTO WildSery > что-то сказано по поводу пустых запросов? Сказано, что ничего не присваивать (и соотв. не делать опуствующие присвоению действия) и не рейзить ошибку. Arioch> А вообще, действительно интересно, что *по стандарту* должно возвращать Arioch> выражение "(select ....)" если записей нет вообще - NULL или ошибку. Null, конечно. If a <value expression primary> is a <scalar subquery> and the result of the <subquery> is empty, then the result of the <value expression primary> is the null value. Arioch> и что, там от этого цикл вырос? не вырос. Ты не заметил, что кроме тебя про циклы вообще никто даже не заикался? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:37 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch, это же очевидно. Не надо путать тёплое с мягким ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:37 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdvя не вижу разницы в этих способах. Нет результата - ничего не присваивается. Есть результат - присваивается. А стандарт - видит. И сам firebird тожt видит Если результата нету - то присваивается NULL В одном из случаев. И если даже ты не можешь навскидку вспомнить правильное по стандарту поведение, странно это ожидать от чайников. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:38 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdv> я не вижу разницы в этих способах. kdv> Нет результата - ничего не присваивается. kdv> Есть результат - присваивается. Нифига себе заявление! Дим, пожуй чего-нибудь, подумай ещё пару раз... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:38 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамТы не заметил, что кроме тебя про циклы вообще никто даже не заикался? Иногда лучше жевать, чем.... ...чем торопиться, скажем вежливо. rdb_devЕсли, к примеру, подобный запрос внутри FOR возвращает строки ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:39 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch> Но в доке тоже надо отобразить. Что именно? Конкретный пример туда перетащить? Или, может, весь стандарт перевести и туда втюхать? :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:40 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов Денисэто же очевидно. Не надо путать тёплое с мягким Нет. Это - всего лишь привычно, и ни в коем случае не очевидно. Это даже KDV как оказалось не очевидно. Зато все тут обронзовели и с "тупыми юзерами" только через губу могут общаться ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:41 |
|
|
start [/forum/topic.php?fid=40&msg=39594314&tid=1561254]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 494ms |
0 / 0 |