Re: [HACKERS] UPDATE of partition key
От | Amit Langote |
---|---|
Тема | Re: [HACKERS] UPDATE of partition key |
Дата | |
Msg-id | 3348a7d8-39b1-e367-8995-7a8a8d3dea69@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: [HACKERS] UPDATE of partition key (Amit Khandekar <amitdkhan.pg@gmail.com>) |
Ответы |
Re: [HACKERS] UPDATE of partition key
|
Список | pgsql-hackers |
On 2017/11/23 21:57, Amit Khandekar wrote: > If we collect the partition keys in expand_partitioned_rtentry(), we > need to pass the root relation also, so that we can convert the > partition key attributes to root rel descriptor. And the other thing > is, may be, we can check beforehand (in expand_inherited_rtentry) > whether the rootrte's updatedCols is empty, which I think implies that > it's not an UPDATE operation. If yes, we can just skip collecting the > partition keys. Yeah, it seems like a good idea after all to check in expand_inherited_rtentry() whether the root RTE's updatedCols is non-empty and if so check if any of the updatedCols are partition keys. If we find some, then it will suffice to just set a simple flag in the PartitionedChildRelInfo that will be created for the root table. That should be done *after* we have visited all the tables in the partition tree including some that might be partitioned and hence will provide their partition keys. The following block in expand_inherited_rtentry() looks like a good spot: if (rte->inh && partitioned_child_rels != NIL) { PartitionedChildRelInfo *pcinfo; pcinfo = makeNode(PartitionedChildRelInfo); Thanks, Amit
В списке pgsql-hackers по дате отправления: