|
where 1=0
|
|||
---|---|---|---|
#18+
Коллеги, подскажите плиз, то что запрос вида: Код: plsql 1.
производит non-indexed reads это баг или фича? Есть ли способ добиться остутствия каких-либо чтений при заведомо невыполнимом условии в секции where? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:00 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Чтений чего? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:19 |
|
where 1=0
|
|||
---|---|---|---|
#18+
А зачем вообще умышленно пихать такие запросы к базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:19 |
|
where 1=0
|
|||
---|---|---|---|
#18+
ЛюбезныйА зачем вообще умышленно пихать такие запросы к базе? Такое обычно делают для отключения одного из условий запроса. Один из них должен быть параметром, типа 1=:param. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:20 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Когда параметр - понятно. А тут лучше бы написал что-то типа NULL IS NOT NULL :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:24 |
|
where 1=0
|
|||
---|---|---|---|
#18+
wadman, Всё верно. Просто привёл максимально рафинированный пример. Если интересно - изначально хотелось добиться чего-то такого: Код: sql 1. 2. 3.
чтобы при :param=null получать все записи, иначе только конкретную. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:42 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый ник, ну так попробуй. В Firebird 3.0 здесь будет подхватываться индекс Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 09:53 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Симонов Денис, Да, в тройке это работает. Если таблица одна и та же. Но всё-таки хотелось бы найти способ при заведомо невыполнимом условии в секции where не шуршать по таблице. Если его нет сейчас - считается ли текущее поведение багом? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 10:37 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый ник, нет, не считается. Баг - это ошибка, когда что-то неправильный результат даёт, или падает, или БД портится. А это просто несовершенство оптимизатора. О проблеме известно, в трекере такой тикет есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 10:42 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Симонов Денис, Подскажите пожалуйста номер тикета. Не вижу ничего подобного в планах на 4.0. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 11:02 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый ник, CORE-1287 на 4.0 никаких планов на этот счёт нет. Там другие фичи в приоритете, если время останется может быть и сделают. Появится dimitr прояснит этот момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 11:07 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый ник, может это своеобразная попытка заставить сервер "собрать мусор", которую, обычно, делают запросом с агрегатной функцией? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 11:20 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый никчтобы при :param=null получать все записи, иначе только конкретную.Так 19668664 подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 11:23 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Симонов Денисчушь не, чушь можно пороть, а это просто бред :) PS: Спасибо за тикет. Надеюсь dimitr расскажет какие у него перспективы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 11:24 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый никне, чушь можно пороть, а это просто бред :)Это не бред, а предположение о чем думал автор запроса, когда написал where 1=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 11:33 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый никНо всё-таки хотелось бы найти способ при заведомо невыполнимом условии в секции where не шуршать по таблице. Единственный способ не шуршать по таблице - не посылать дурной запрос. Не ленись, сделай из него два отдельных запроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:06 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Это понятно. Но ИМХО сервер сам должен уметь дурные запросы обезвреживать. И чем больше - тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:15 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый никИМХО сервер сам должен уметь дурные запросы обезвреживать. Если его научить вычислению выражений на фазе компиляции (что само по себе нетривиально), он начнёт "обезвреживать" и "хинты" типа +0 и ||''. А от такого уже многие взвоют. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:21 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, нужны нормальные хинты, а не затычки. +0 и ||'' это не хинты. Просто те кто знают как работает оптимизатор использует эту возможность для его обмана. Нормальный хинт был бы предпочтительней. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:24 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли его научить вычислению выражений на фазе компиляции (что само по себе нетривиально), он начнёт "обезвреживать" и "хинты" типа +0 и ||''. А от такого уже многие взвоют. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:30 |
|
where 1=0
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 22 сентября 2016 г. 12:30:39: Симонов Денис> нужны нормальные хинты, а не затычки. > +0 и ||'' это не хинты. > Просто те кто знают как работает оптимизатор использует эту возможность для его обмана. > Нормальный хинт был бы предпочтительней.+100500! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 12:31 |
|
where 1=0
|
|||
---|---|---|---|
#18+
ЛюбезныйКогда параметр - понятно. А тут лучше бы написал что-то типа NULL IS NOT NULL :) Бывает полезно и без параметра. Чтобы получить в результате 0 записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 16:52 |
|
where 1=0
|
|||
---|---|---|---|
#18+
серый-серый никчтобы при :param=null получать все записи, иначе только конкретную. А такой вариант не подойдет? Код: plsql 1.
С уважением, Polesov. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 18:27 |
|
|
start [/forum/topic.php?fid=40&msg=39313257&tid=1561962]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 149ms |
0 / 0 |