powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
9 сообщений из 34, страница 2 из 2
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263100
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

Используйте процедуру.
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263108
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora601,

ещё один.
как же вы настодоели

расскажите, что мешает оптимайзеру сракуля поюзать индеск при сравнении столбца намберов с 1.5d
как мы видим -- покрытие кейсов индусами отнюдь не всюду полно.
даже у очень богатенького ларрия.

чо уж говорить пра пеже.
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263113
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneMaxim Boguk,

Используйте процедуру.вопрос не в том, как рыбу заворачивать -- это всем тут присутствующим известно.
а в том, чтобы обучить оптимайзер решать эти кейсы самостийно.
все , что нужно -- у него есть.
надо только сесть и дописать ему кусок мозга.
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263272
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqрасскажите, что мешает оптимайзеру сракуля поюзать индеск при сравнении столбца намберов с 1.5d некоммутативность. Приведение между number и double не для всех значений допустимо или обратимо, поэтому оптимизатор не должен додумывать, что неявно имел ввиду программист, написавший вместо целого строку или double или numeric, в зависимости от того, есть сейчас индекс по какой-либо части выражения или нет.
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263276
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.qwwqрасскажите, что мешает оптимайзеру сракуля поюзать индеск при сравнении столбца намберов с 1.5d некоммутативность. Приведение между number и double не для всех значений допустимо или обратимо, поэтому оптимизатор не должен додумывать, что неявно имел ввиду программист, написавший вместо целого строку или double или numeric, в зависимости от того, есть сейчас индекс по какой-либо части выражения или нет.

Сравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может.
Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263281
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukСравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может.
Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок).
Нет предела совершенству. Почему бы не реализовать разложение выражения на всевозможные комбинации (которых всегда бесконечность) и получение от этих частей обратных функций ради индекса. Предсказать, что приведение целых никогда не даст равенство дробному, а синус только в военное время достигает 2.0.
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263285
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.Maxim BogukСравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может.
Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок).
Нет предела совершенству. Почему бы не реализовать разложение выражения на всевозможные комбинации (которых всегда бесконечность) и получение от этих частей обратных функций ради индекса. Предсказать, что приведение целых никогда не даст равенство дробному, а синус только в военное время достигает 2.0.

Есть пяток стандартных ситуация которые закрывают 99% реалистичных ситуаций если не 99.9%.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263443
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Bogukp2.пропущено...
некоммутативность. Приведение между number и double не для всех значений допустимо или обратимо, поэтому оптимизатор не должен додумывать, что неявно имел ввиду программист, написавший вместо целого строку или double или numeric, в зависимости от того, есть сейчас индекс по какой-либо части выражения или нет.

Сравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может.
Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок).



ну в таком случае, если уж говорить честно, то (int) 1 не должен быть равен (double) 1.
...
Рейтинг: 0 / 0
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
    #39263692
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonMaxim Bogukпропущено...


Сравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может.
Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок).



ну в таком случае, если уж говорить честно, то (int) 1 не должен быть равен (double) 1.мухаха

и где же вас, таких, понаделали ?

если найдете два таких @integer и @double , что
(@integer)::double = @double
but
(@double::integer)::double <> @double

--дайте знать. будем тереть за коммутативность.

а так --нет :]
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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