powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите определится у кого ошибка
15 сообщений из 40, страница 2 из 2
помогите определится у кого ошибка
    #34689964
Vivka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dan BlackЕсли уж говорить о сложных запросах, то вышеописанный запрос ужасен на мой взгляд :)
Есть очень много спорных подходов, касающихся подзапроса и его использования в основном запросе (из серии почему используется =(), а не IN () )... да и сам подзапрос, а именно условия
Код: plaintext
1.
t2.kh   = test_2.kh	and
t2.d_s  = test_2.d_s	and
ИМХО лишние. Возможно там где-то есть индексы, которые должны использоваться, но их в исходных данных не видно.
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 


На самом деле в оригинальном СКЛ это все обязательное и на все таблицы есть необходимые индексы. Я просто составил простой скл что было понятно.
Да и еще, для теущего примера замена test_1.ku = (select min(t1.ku) на test_1.ku IN (select min(t1.ku) помогает
а вот в ориганльном СКЛ нет, все так же не цепляет подзапрос
Помагает только test_1.ku + 0 = (select min(t1.ku) или test_1.ku::int8= (select min(t1.ku)
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34690059
Vivka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот например с in тоже не работает.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select	test_1.name
from	test_1,
	test_2
where	test_2.kh =   1 			and
	test_2.ku between   1  and  100 	and
	test_1.ku = test_2.ku		and
	test_1.ku in ( case when test_1.name is null 
			then  
				(select min(t1.ku)
			 	from   test_1 t1,test_2 t2
				 where	t1.ku_1 = test_1.ku_1	and
					t2.kh   = test_2.kh	and
					t2.d_s  = test_2.d_s	and
					t1.ku   = t2.ku )
			else - 1 
		     end )
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34691767
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут удалось получить тот же баг в более простом выражении:
http://archives.postgresql.org/pgsql-bugs/2007-07/msg00141.php

пишут - имеет место для 8.1 и 8.2 , пора переходить на 8.3
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34692530
Vivka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут еще проще.
http://archives.postgresql.org/pgsql-bugs/2007-07/msg00143.php
У кого с англ. хорошо , что там в конце написал tom lane, переведите плиз.
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34692598
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
It appears that join_clause_is_redundant() is rejecting the clause as
redundant. I suppose some part of that machinery gets confused by the
fact that the RHS of the clause references both relations. The
EquivalenceClass rewrite cleaned this whole area up greatly, so no
surprise that the bug is gone in HEAD. No time to look at it more now.
--
Похоже, что join_clause_is_redundant() откидывает оператор как избыточный. Я думаю, что алгоритм спотыкается, когда правая часть оператора содержит ссылки на обе таблицы. В HEAD, скорее всего, баг пропал вследствии значительных изменений в EquivalenceClass. На дальнейшие разборки пока нет времени.

ps. не пинайте ногами :)
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34692618
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vivkaтут еще проще.
http://archives.postgresql.org/pgsql-bugs/2007-07/msg00143.php
У кого с англ. хорошо , что там в конце написал tom lane, переведите плиз.

Ну это и есть ответ на bug-report, посланный Ёш.

Том считает, что функция ответственная за отбрасывание лишних операций в WHERE блоке сходит с ума от того, что в правой части сравнения (right-hand side) фигурируют обе таблицы.
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34692626
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_serg опередил :) Именно это и я имел в виду
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34692780
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ThamerlanТом считает, что функция ответственная за отбрасывание лишних операций в WHERE блоке сходит с ума от того, что в правой части сравнения (right-hand side) фигурируют обе таблицы.мдя-с. кто-то настрогал левую математику. Так как, в 8.3. усе будет пучком? Или я чего-то не понял?
(уш плюха, так плюха. хоть людЯм не кажись - засмеють...)


кстати, кажется проскакивала инфа о предполагаемом релизе 8.3 в начале июля, или я что-то путаю? Если не путаю - что не ладится?

зы. не пробовал кто-нть этот тестик на 7-ке (от 7.3 и выше)? там тоже чудесатости?
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34693936
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321
кстати, кажется проскакивала инфа о предполагаемом релизе 8.3 в начале июля, или я что-то путаю? Если не путаю - что не ладится?

roadmap:PatchStatus
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34697405
Vivka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
о развернулась целая дискуссия..
http://archives.postgresql.org/pgsql-bugs/2007-07/msg00156.php
http://archives.postgresql.org/pgsql-bugs/2007-07/msg00159.php
http://archives.postgresql.org/pgsql-bugs/2007-07/msg00161.php

В последнем сообщении вроде обещает исправить в следущем релизе. только когда он будет интересно.
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34697449
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... it'll be in the next set of releases
--
... он войдет в следующий набор релизов

насколько я понимаю, это будет 8.2.5, 8.1.10 и тд
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34699775
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
4321
кстати, кажется проскакивала инфа о предполагаемом релизе 8.3 в начале июля, или я что-то путаю? Если не путаю - что не ладится?

когда-то давно (а именно в начале цикла 8.3) все мечтали о короткой итерации и релизе в июне, да
сейчас речь идет об октябре
все ладится, кроме того, что полгода назад недооценили количество и сложность предполагаемых к релизу патчей, летний спад активности и некоторые другие банальные вещи
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34706974
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<pgsql-announce@postgresql.org>;
- Fix a bug in the original implementation of redundant-join-clause
removal: clauses in which one side or the other references both
sides of the join cannot be removed as redundant, because that
expression won't have been constrained below the join. Per report
from Sergey Burladyan. CVS HEAD does not contain this bug due to
EquivalenceClass rewrite, but it seems wise to include the
regression test for it anyway.
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34873986
Vivka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
помогите определится у кого ошибка
    #34875065
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните, что Вам надо-то? Тема же была раскрыта.
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите определится у кого ошибка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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