Hi, Alexander! On Tue, Apr 30, 2024 at 9:00 AM Alexander Lakhin <exclus...@gmail.com> wrote: > 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.
I'm looking into this, thank you! ------ Regards, Alexander Korotkov