Re: BUG #15437: Segfault during insert into declarative partitioned table with a trigger creating partition
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Michael Paquier <michael@paquier.xyz>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, skaurus@gmail.com,
pgsql-bugs@lists.postgresql.org
Date: 2018-10-29T07:32:03Z
Lists: pgsql-bugs
Attachments
- check-table-not-used-when-create-partition-of-3.patch (text/plain) patch
On 2018/10/29 15:57, Michael Paquier wrote: > On Mon, Oct 29, 2018 at 02:28:53PM +0900, Amit Langote wrote: >> On 2018/10/29 12:31, Michael Paquier wrote: >>> In the case of a partition, the execution state relies on the data >>> inserted, so the restriction sounds fine to me. If one tries to attach >>> a partition after creating a table you actually get an error: >>> ERROR: 55006: cannot ALTER TABLE "check_not_in_use" because it is being >>> used by active queries in this session >>> CONTEXT: SQL statement "alter table check_not_in_use attach partition >>> check_not_in_use1 for values IN (1);" >> >> Yeah, I forgot to include this example in my previous emails. > > We may want to add a new test for this one in the same spirit as what > has been sent in the previous patch. OK, added. >>> Other callers of CheckTableNotInUse() use command tags, which is >>> inconsistent here, still I cannot think of anything better than >>> CREATE TABLE "%s" PARTITION OF >>> or: >>> CREATE TABLE .. PARTITION OF >> >> Maybe the latter is fine, because we want to highlight the parent table's >> name, not partition's. > > Fine by me. Done that way. I also switched the check back to just partitioned parent case. Thanks for looking at this. Regards, Amit
Commits
-
Block creation of partitions with open references to its parent
- 8aad248f7c67 10.6 landed
- 7c222d5e56cc 11.1 landed
- dc3e436b191a 12.0 landed