hi, SELECT table_name, column_name, is_updatable FROM information_schema.columns WHERE table_name LIKE E'r_\\_view%' ORDER BY table_name, ordinal_position;
at d1d286d83c0eed695910cb20d970ea9bea2e5001, this query in src/test/regress/sql/updatable_views.sql makes regress tests fail. maybe other query also, but this is the first one that invokes the server crash. src3=# SELECT table_name, column_name, is_updatable FROM information_schema.columns WHERE table_name LIKE E'r_\\_view%' ORDER BY table_name, ordinal_position; TRAP: failed Assert("bms_is_valid_set(a)"), File: "../../Desktop/pg_src/src3/postgres/src/backend/nodes/bitmapset.c", Line: 515, PID: 158266 postgres: jian src3 [local] SELECT(ExceptionalCondition+0x106)[0x5579188c0b6f] postgres: jian src3 [local] SELECT(bms_is_member+0x56)[0x5579183581c7] postgres: jian src3 [local] SELECT(join_clause_is_movable_to+0x72)[0x557918439711] postgres: jian src3 [local] SELECT(+0x73e26c)[0x5579183a126c] postgres: jian src3 [local] SELECT(create_index_paths+0x3b8)[0x55791839d0ce] postgres: jian src3 [local] SELECT(+0x719b4d)[0x55791837cb4d] postgres: jian src3 [local] SELECT(+0x719400)[0x55791837c400] postgres: jian src3 [local] SELECT(+0x718e90)[0x55791837be90] postgres: jian src3 [local] SELECT(make_one_rel+0x187)[0x55791837bac5] postgres: jian src3 [local] SELECT(query_planner+0x4e8)[0x5579183d2dc2] postgres: jian src3 [local] SELECT(+0x7734ad)[0x5579183d64ad] postgres: jian src3 [local] SELECT(subquery_planner+0x14b9)[0x5579183d57e4] postgres: jian src3 [local] SELECT(standard_planner+0x365)[0x5579183d379e] postgres: jian src3 [local] SELECT(planner+0x81)[0x5579183d3426] postgres: jian src3 [local] SELECT(pg_plan_query+0xbb)[0x5579186100c8] postgres: jian src3 [local] SELECT(pg_plan_queries+0x11a)[0x5579186102de] postgres: jian src3 [local] SELECT(+0x9ad8f1)[0x5579186108f1] postgres: jian src3 [local] SELECT(PostgresMain+0xd4a)[0x557918618603] postgres: jian src3 [local] SELECT(+0x9a76a8)[0x55791860a6a8] postgres: jian src3 [local] SELECT(postmaster_child_launch+0x14d)[0x5579184d3430] postgres: jian src3 [local] SELECT(+0x879c28)[0x5579184dcc28] postgres: jian src3 [local] SELECT(+0x875278)[0x5579184d8278] postgres: jian src3 [local] SELECT(PostmasterMain+0x205f)[0x5579184d7837] version -------------------------------------------------------------------------------- PostgreSQL 17devel_debug_build on x86_64-linux, compiled by gcc-11.4.0, 64-bit meson config: -Dpgport=5458 \ -Dplperl=enabled \ -Dplpython=enabled \ -Dssl=openssl \ -Dldap=enabled \ -Dlibxml=enabled \ -Dlibxslt=enabled \ -Duuid=e2fs \ -Dzstd=enabled \ -Dlz4=enabled \ -Dcassert=true \ -Db_coverage=true \ -Dicu=enabled \ -Dbuildtype=debug \ -Dwerror=true \ -Dc_args='-Wunused-variable -Wuninitialized -Werror=maybe-uninitialized -Wreturn-type -DWRITE_READ_PARSE_PLAN_TREES -DREALLOCATE_BITMAPSETS -DCOPY_PARSE_PLAN_TREES -DRAW_EXPRESSION_COVERAGE_TEST -fno-omit-frame-pointer' \ -Ddocs_pdf=disabled \ -Ddocs_html_style=website \ -Dllvm=disabled \ -Dtap_tests=enabled \ -Dextra_version=_debug_build This commit: d1d286d83c0eed695910cb20d970ea9bea2e5001 Revert: Remove useless self-joins make it fail. the preceding commit (81b2252e609cfa74550dd6804949485c094e4b85) won't make the regress fail. i also found that not specifying c_args: `-DREALLOCATE_BITMAPSETS`, the regress test won't fail. later, i found out that `select 1 from information_schema.columns` would also crash the server. information_schema.columns view is very complex. I get the view information_schema.columns definitions, omit unnecessary const and where qual parts of the it so the minimum reproducer is: SELECT 1 FROM ((((( (pg_attribute a LEFT JOIN pg_attrdef ad ON (((a.attrelid = ad.adrelid) AND (a.attnum = ad.adnum)))) JOIN (pg_class c JOIN pg_namespace nc ON (c.relnamespace = nc.oid)) ON (a.attrelid = c.oid)) JOIN (pg_type t JOIN pg_namespace nt ON ((t.typnamespace = nt.oid))) ON (a.atttypid = t.oid)) LEFT JOIN (pg_type bt JOIN pg_namespace nbt ON (bt.typnamespace = nbt.oid)) ON ( t.typbasetype = bt.oid )) LEFT JOIN (pg_collation co JOIN pg_namespace nco ON ( co.collnamespace = nco.oid)) ON (a.attcollation = co.oid)) LEFT JOIN (pg_depend dep JOIN pg_sequence seq ON (dep.objid = seq.seqrelid )) ON (((dep.refobjid = c.oid) AND (dep.refobjsubid = a.attnum))));