Re: Removing unneeded self joins
От | Alexander Lakhin |
---|---|
Тема | Re: Removing unneeded self joins |
Дата | |
Msg-id | 0ed2cf02-e655-6ec7-a4fe-52fd8d572f65@gmail.com обсуждение исходный текст |
Ответ на | Re: Removing unneeded self joins (Alexander Korotkov <aekorotkov@gmail.com>) |
Ответы |
Re: Removing unneeded self joins
Re: Removing unneeded self joins |
Список | pgsql-hackers |
Hello Alexander, 23.10.2023 12:47, Alexander Korotkov wrote: > I think this patch makes substantial improvement to query planning. > It has received plenty of reviews. The code is currently in quite > good shape. I didn't manage to find the cases when this optimization > causes significant overhead to planning time. Even if such cases will > be spotted there is a GUC option to disable this feature. So, I'll > push this if there are no objections. I've discovered another failure, introduced by d3d55ce57. Please try the following: CREATE TABLE t (a int unique, b float); SELECT * FROM t NATURAL JOIN LATERAL (SELECT * FROM t t2 TABLESAMPLE SYSTEM (t.b)) t2; With asserts enabled, it triggers TRAP: failed Assert("!bms_is_member(rti, lateral_relids)"), File: "initsplan.c", Line: 697, PID: 3074054 ExceptionalCondition at assert.c:52:13 create_lateral_join_info at initsplan.c:700:8 query_planner at planmain.c:257:2 grouping_planner at planner.c:1523:17 subquery_planner at planner.c:1098:2 standard_planner at planner.c:415:9 planner at planner.c:282:12 pg_plan_query at postgres.c:904:9 pg_plan_queries at postgres.c:996:11 exec_simple_query at postgres.c:1193:19 PostgresMain at postgres.c:4684:27 With no asserts, I get: ERROR: failed to construct the join relation Please take a look at this. Best regards, Alexander
В списке pgsql-hackers по дате отправления: