Re:Re: BUG #18806: When enable_rartitionwise_join is set to ON, the database shuts down abnormally
孟令彬 <m_lingbin@126.com>
From: 孟令彬 <m_lingbin@126.com>
To: pgsql-bugs@lists.postgresql.org
Date: 2025-02-12T08:55:33Z
Lists: pgsql-bugs
The above email has provided the table structure. You can try creating the same table structure and executing 'select * from test t join orders o on' t.order_id =o.order_id where t.order_id in (select order_id from orders);‘ sentence. I believe that you will soon see the occurrence of errors. demo=# \d+ test Table "bookings.test" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description ----------+-------------------+-----------+----------+---------+----------+-------------+--------------+------------- order_id | integer | | | | plain | | | name | character varying | | | | extended | | | Access method: heap demo=# \d+ orders Partitioned table "bookings.orders" Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description ----------+-----------------------+-----------+----------+---------+----------+-------------+--------------+------------- order_id | integer | | | | plain | | | name | character varying(10) | | | | extended | | | Partition key: HASH (order_id) Partitions: orders_p1 FOR VALUES WITH (modulus 32, remainder 0), orders_p10 FOR VALUES WITH (modulus 32, remainder 9), orders_p11 FOR VALUES WITH (modulus 32, remainder 10), orders_p12 FOR VALUES WITH (modulus 32, remainder 11), orders_p13 FOR VALUES WITH (modulus 32, remainder 12), orders_p14 FOR VALUES WITH (modulus 32, remainder 13), orders_p15 FOR VALUES WITH (modulus 32, remainder 14), orders_p16 FOR VALUES WITH (modulus 32, remainder 15), orders_p17 FOR VALUES WITH (modulus 32, remainder 16), orders_p18 FOR VALUES WITH (modulus 32, remainder 17), orders_p19 FOR VALUES WITH (modulus 32, remainder 18), orders_p2 FOR VALUES WITH (modulus 32, remainder 1), orders_p20 FOR VALUES WITH (modulus 32, remainder 19), orders_p21 FOR VALUES WITH (modulus 32, remainder 20), orders_p22 FOR VALUES WITH (modulus 32, remainder 21), orders_p23 FOR VALUES WITH (modulus 32, remainder 22), orders_p24 FOR VALUES WITH (modulus 32, remainder 23), orders_p25 FOR VALUES WITH (modulus 32, remainder 24), orders_p26 FOR VALUES WITH (modulus 32, remainder 25), orders_p28 FOR VALUES WITH (modulus 32, remainder 27), orders_p29 FOR VALUES WITH (modulus 32, remainder 28), orders_p3 FOR VALUES WITH (modulus 32, remainder 2), orders_p30 FOR VALUES WITH (modulus 32, remainder 29), orders_p31 FOR VALUES WITH (modulus 32, remainder 30), orders_p32 FOR VALUES WITH (modulus 32, remainder 31), orders_p4 FOR VALUES WITH (modulus 32, remainder 3), orders_p5 FOR VALUES WITH (modulus 32, remainder 4), orders_p6 FOR VALUES WITH (modulus 32, remainder 5), orders_p7 FOR VALUES WITH (modulus 32, remainder 6), orders_p8 FOR VALUES WITH (modulus 32, remainder 7), orders_p9 FOR VALUES WITH (modulus 32, remainder 8) demo=# good luck! At 2025-02-12 15:38:34, "Laurenz Albe" <laurenz.albe@cybertec.at> wrote: >On Wed, 2025-02-12 at 07:01 +0000, PG Bug reporting form wrote: >> PostgreSQL version: 17.2 >> Operating system: CentOS Linux release 7.9.2009 (Core) >> Description: >> >> After upgrading PG17.2, testing found that when enable_rartitionwise_join is >> set to ON, when executing a query, if the main query and subquery have the >> same table, the query will report an error. >> >> The database log shows the following error: >> LOG: server process (PID 24796) was terminated by signal 6: Aborted >> DETAIL: Failed process was running: select * from test t join orders o on >> t.order_id =o.order_id where t.order_id in (select order_id from orders); >> LOG: terminating any other active server processes > >That is a crash that may well indicate a PostgreSQL bug. > >However, without a way to reproduce the behavior, we won't be able to fix >the problem. Try to come up with a self-contained test case. It would >also be interesting to know which PostgreSQL extensions are present. > >Yours, >Laurenz Albe > >-- > >*E-Mail Disclaimer* >Der Inhalt dieser E-Mail ist ausschliesslich fuer den >bezeichneten Adressaten bestimmt. Wenn Sie nicht der vorgesehene Adressat >dieser E-Mail oder dessen Vertreter sein sollten, so beachten Sie bitte, >dass jede Form der Kenntnisnahme, Veroeffentlichung, Vervielfaeltigung oder >Weitergabe des Inhalts dieser E-Mail unzulaessig ist. Wir bitten Sie, sich >in diesem Fall mit dem Absender der E-Mail in Verbindung zu setzen. > >*CONFIDENTIALITY NOTICE & DISCLAIMER >*This message and any attachment are >confidential and may be privileged or otherwise protected from disclosure >and solely for the use of the person(s) or entity to whom it is intended. >If you have received this message in error and are not the intended >recipient, please notify the sender immediately and delete this message and >any attachment from your system. If you are not the intended recipient, be >advised that any use of this message is prohibited and may be unlawful, and >you must not copy this message or attachment or disclose the contents to >any other person.
Commits
-
Fix freeing a child join's SpecialJoinInfo
- 727bc6ac33f6 17.5 landed
- c39392ebaeef 18.0 landed
-
Reduce memory used by partitionwise joins
- 5278d0a2e870 17.0 cited