Re: [BUG] Remove self joins causes 'variable not found in subplan target lists' error
От | Andrei Lepikhov |
---|---|
Тема | Re: [BUG] Remove self joins causes 'variable not found in subplan target lists' error |
Дата | |
Msg-id | 21bed061-9907-4c40-9a76-378dcb6304c3@gmail.com обсуждение исходный текст |
Ответ на | Re: [BUG] Remove self joins causes 'variable not found in subplan target lists' error (Richard Guo <guofenglinux@gmail.com>) |
Ответы |
Re: [BUG] Remove self joins causes 'variable not found in subplan target lists' error
|
Список | pgsql-hackers |
On 25/8/2025 15:28, Richard Guo wrote: > On Sat, Aug 23, 2025 at 12:27 AM Sergey Soloviev > <sergey.soloviev@tantorlabs.ru> wrote: >> I would like write a test in 'join.sql', but for now it requires patches >> to easily reproduce the bug. I appreciate it if someone could find >> an easier way to reproduce the bug and write a simple test. > > Nice catch! Here's a query that reproduces the error without needing > to hack the code. > > create table t (a int, b int); > create unique index on t (a); > > select t1.a from t t1 > left join t t2 on t1.a = t2.a > join t t3 on true > where exists (select 1 from t t4 > join t t5 on t4.b = t5.b > join t t6 on t5.b = t6.b > where t1.a = t4.a and t3.a = t5.a and t4.a = 2); > ERROR: variable not found in subplan target lists Thanks for your reproduction. Unfortunately, it works only in the absence of an ANALYZE, like the original example. Also, I would say it is not a self-join-related issue. This example employs the removal of the 'unnecessary left join'. Currently, I'm unsure why this example causes the issue: the removing t2 table shouldn't have any references in ECs within the EXISTS part. -- regards, Andrei Lepikhov
В списке pgsql-hackers по дате отправления: