172 похожих чатов

А есть какое-то учение о круглых скобках в postgres, не

нашёл в документации, там есть лишь указание, что это образует собой "логические группы".
Вот эти выражения со смысловой точки зрения эквивалентны:
SELECT * FROM users WHERE (id = 1 OR name = 'boo')
SELECT * FROM users WHERE (id = 1) OR (name = 'boo')
но есть ли случаи, когда всё, что идёт после WHERE взятое в скобки будет влиять на перформанс или на результат запроса?

4 ответов

21 просмотр

А какое "учение" Вам нужно? Круглые скобки в основном работают обычным для языков программирования образом, т.е. меняют порядок вычисления выражений. Есть, конечно, крайние случаи (когда скобки семантически значимы), но к WHERE они, на первый взгляд, не относятся. Т.е. влиять на результат или производительность "лишние" скобки в WHERE не должны.

Yaroslav Schekin
А какое "учение" Вам нужно? Круглые скобки в основ...

Я не уверен, что происходит на partial index. Раньше в доках было "индексное выражение должно точно соответствовать выражению в запросе" и интересно узнать насколько им можно различаться.

Darafei Praliaskouski
Я не уверен, что происходит на partial index. Рань...

По-моему, на самом деле такого ограничения никогда не было. Суть "индексное выражение должно точно соответствовать выражению в запросе" в том, что при планировании запроса должна получаться точно такая restriction clause — в смысле операторов, типов данных и т.п. Т.е. сколько вокруг неё скобок, переставлены ли местами подвыражения и т.п. не имеет значения... но попробуйте ясно напишите это в документации — мне кажется, решили перестраховаться.

Yaroslav Schekin
По-моему, на самом деле такого ограничения никогда...

вроде где то писалось как постгресс выполняет запрос, что после парсинга он нормализует запрос(разворачивает всякий синтаксический сахар за одно), видимо про точное соответствие писалось с мыслью что про нормализацию еще помнят

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Всем привет! Использую gitlab-ci. Настроил gitlab-agent для деплоя в куб. При деплое проекта в логах такая ошибка: Executing deploy plan failed to watch "ns:my-project/Ingress...
Konstantin Moiseev
4
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
8
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Гуру, подскажите, меня уже критиковали за неумением, но и в инете я решения не нашел, тем более в доках абракадабры. В 12.1 студии появился новый тип TSQLTimeStampOffset , ест...
Delphi Photo
10
Карта сайта