assertion failure with unique index + partitioning + join - Mailing list pgsql-hackers
| From | Alexander Kuzmenkov |
|---|---|
| Subject | assertion failure with unique index + partitioning + join |
| Date | |
| Msg-id | CALzhyqwryL2QywgO03VQr_237Sq3MEVgTTT2_A9G3nGT5-SRZg@mail.gmail.com Whole thread |
| Responses |
Re: assertion failure with unique index + partitioning + join
|
| List | pgsql-hackers |
Hi hackers,
While I was running some random testing on the TimescaleDB extension, I noticed that I can easily hit an assertion failure in plain Postgres REL_18_STABLE. I haven't analyzed it at all, but thought I should report this:CREATE TABLE t (a bool UNIQUE) PARTITION BY LIST (a);
CREATE TABLE p PARTITION OF t DEFAULT;
SELECT
FROM (
SELECT *
FROM t
LEFT JOIN t r USING (a)
)
WHERE a
GROUP BY ();
TRAP: failed Assert("bms_is_member(i, root->outer_join_rels)"), File: "../pg/src/backend/optimizer/path/equivclass.c", Line: 3631, PID: 1813021
#6 0x000055d44911f565 in get_eclass_indexes_for_relids (root=root@entry=0x55d45c0a2d58, relids=relids@entry=0x55d45c0af3f0) at ../pg/src/backend/optimizer/path/equivclass.c:3631
#7 0x000055d44911f338 in get_common_eclass_indexes (root=0x55d45c0a2d58, relids1=0x55d45c0a47e8, relids2=0x55d45c0af3f0) at ../pg/src/backend/optimizer/path/equivclass.c:3662
#8 generate_join_implied_equalities (root=root@entry=0x55d45c0a2d58, join_relids=join_relids@entry=0x55d45c0af520, outer_relids=outer_relids@entry=0x55d45c0af3f0, inner_rel=inner_rel@entry=0x55d45c0a5c28, sjinfo=sjinfo@entry=0x0) at ../pg/src/backend/optimizer/path/equivclass.c:1599
#9 0x000055d44917a42f in get_baserel_parampathinfo (root=root@entry=0x55d45c0a2d58, baserel=baserel@entry=0x55d45c0a5c28, required_outer=0x55d45c0af3f0) at ../pg/src/backend/optimizer/util/relnode.c:1590
#10 0x000055d44916d0ab in create_index_path (root=root@entry=0x55d45c0a2d58, index=index@entry=0x55d45c0ad048, indexclauses=0x55d45c0af4b0, indexorderbys=0x0, indexorderbycols=indexorderbycols@entry=0x0, pathkeys=0x0, indexscandir=ForwardScanDirection, indexonly=<optimized out>, required_outer=0x55d45c0af3f0, loop_count=<error reading variable: That operation is not available on integers of more than 8 bytes.>, loop_count@entry=1, partial_path=<optimized out>) at ../pg/src/backend/optimizer/util/pathnode.c:1070
#11 0x000055d449126dae in build_index_paths (root=root@entry=0x55d45c0a2d58, rel=rel@entry=0x55d45c0a5c28, index=index@entry=0x55d45c0ad048, clauses=clauses@entry=0x7ffc6f09da70, useful_predicate=false, scantype=scantype@entry=ST_ANYSCAN, skip_nonnative_saop=0x7ffc6f09da37) at ../pg/src/backend/optimizer/path/indxpath.c:969
#12 0x000055d449123cc2 in get_index_paths (root=root@entry=0x55d45c0a2d58, rel=rel@entry=0x55d45c0a5c28, index=0x6, index@entry=0x55d45c0ad048, clauses=clauses@entry=0x7ffc6f09da70, bitindexpaths=bitindexpaths@entry=0x7ffc6f09ddb0) at ../pg/src/backend/optimizer/path/indxpath.c:728
#13 0x000055d449123700 in create_index_paths (root=0x55d45c0a2d58, rel=0x55d45c0a5c28) at ../pg/src/backend/optimizer/path/indxpath.c:285
#14 0x000055d4491141ce in set_rel_pathlist (root=root@entry=0x55d45c0a2d58, rel=rel@entry=0x55d45c0a5c28, rti=5, rte=0x55d45c0a5660) at ../pg/src/backend/optimizer/path/allpaths.c:499
#15 0x000055d449114053 in set_append_rel_pathlist (root=0x55d45c0a2d58, rel=0x55d45c0a4cd0, rti=2, rte=0x55d45bff3dc8) at ../pg/src/backend/optimizer/path/allpaths.c:1290
#16 set_rel_pathlist (root=root@entry=0x55d45c0a2d58, rel=0x55d45c0a4cd0, rti=rti@entry=2, rte=0x55d45bff3dc8) at ../pg/src/backend/optimizer/path/allpaths.c:479
#17 0x000055d44910fd69 in set_base_rel_pathlists (root=0x55d45c0a2d58) at ../pg/src/backend/optimizer/path/allpaths.c:351
#18 make_one_rel (root=root@entry=0x55d45c0a2d58, joinlist=joinlist@entry=0x55d45c0ad6b8) at ../pg/src/backend/optimizer/path/allpaths.c:221
#19 0x000055d449144f89 in query_planner (root=0x55d45c0a2d58, qp_callback=<optimized out>, qp_extra=qp_extra@entry=0x7ffc6f09df48) at ../pg/src/backend/optimizer/plan/planmain.c:288
#20 0x000055d44914817e in grouping_planner (root=root@entry=0x55d45c0a2d58, tuple_fraction=<optimized out>, tuple_fraction@entry=0, setops=setops@entry=0x0) at ../pg/src/backend/optimizer/plan/planner.c:1896
#21 0x000055d449146ae2 in subquery_planner (glob=glob@entry=0x55d45bfbc1e8, parse=parse@entry=0x55d45bfbc2f8, parent_root=parent_root@entry=0x0, hasRecursion=false, tuple_fraction=<error reading variable: That operation is not available on integers of more than 8 bytes.>, setops=setops@entry=0x0) at ../pg/src/backend/optimizer/plan/planner.c:1274
#22 0x000055d44914519a in standard_planner (parse=0x55d45bfbc2f8, query_string=<optimized out>, cursorOptions=2048, boundParams=<optimized out>) at ../pg/src/backend/optimizer/plan/planner.c:453
#23 0x000055d44914503e in planner (parse=0x1baa1d, parse@entry=0x55d45bfbc2f8, query_string=0x1baa1d <error: Cannot access memory at address 0x1baa1d>, query_string@entry=0x55d45bfbaba0 "SELECT", ' ' <repeats 91 times>, "\n FROM (\n SELECT *", ' ' <repeats 79 times>..., cursorOptions=6, cursorOptions@entry=2048, boundParams=0x7f05ac2969fc <__GI___pthread_kill+300>, boundParams@entry=0x0) at ../pg/src/backend/optimizer/plan/planner.c:313
pgsql-hackers by date: