Re: Removing unneeded self joins
От | Thomas Munro |
---|---|
Тема | Re: Removing unneeded self joins |
Дата | |
Msg-id | CAEepm=19wLyUc4o43j5WnSbYsQPoaErdoOfeXiPP0iB_zRUm_w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Removing unneeded self joins (Alexander Kuzmenkov <a.kuzmenkov@postgrespro.ru>) |
Ответы |
Re: Removing unneeded self joins
|
Список | pgsql-hackers |
On Sat, Jul 28, 2018 at 12:26 AM, Alexander Kuzmenkov <a.kuzmenkov@postgrespro.ru> wrote: > Here is a current version of the patch, still rather experimental. Hi Alexander, The eval-qual-plan isolation test is failing: - checking 1050 checking 600 + checking 600 checking 600 That's the result of a self join with EPQ on one side of the join: SELECT * FROM accounts a1, accounts a2 WHERE a1.accountid = a2.accountid FOR UPDATE OF a1; I think you need to disable the optimisation when there is a locking clause on one side. Maybe it could be allowed if it's on both sides? Not sure. + Assert(is_opclause(rinfo->clause)); + Expr *leftOp = (Expr *) get_leftop(rinfo->clause); You can't declare a variable here in C89. -- Thomas Munro http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: