Re: Declarative partitioning
От | Amit Langote |
---|---|
Тема | Re: Declarative partitioning |
Дата | |
Msg-id | a8ffae48-a9ed-9f65-8bad-f42a6aa3b623@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: Declarative partitioning (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>) |
Ответы |
Re: Declarative partitioning
|
Список | pgsql-hackers |
On 2016/07/04 21:31, Ashutosh Bapat wrote: > Hi Amit, > I observed that the ChangeVarNodes call at line 1229 in > get_relation_constraints() (code below) changes the varno in the cached > copy of partition key expression, which is undesirable. The reason for this > seems to be that the RelationGetPartitionCheckQual() returns the copy of > partition key expression directly from the cache. This is mostly because > get_check_qual_for_range() directly works on cached copy of partition key > expressions, which it should never. Yes, a copyObject() on key->partexprs items seems necessary. Will fix that. > 1223 /* Append partition check quals, if any */ > 1224 pcqual = RelationGetPartitionCheckQual(relation); > 1225 if (pcqual) > 1226 { > 1227 /* Fix Vars to have the desired varno */ > 1228 if (varno != 1) > 1229 ChangeVarNodes((Node *) pcqual, 1, varno, 0); > 1230 > 1231 result = list_concat(result, pcqual); > 1232 } > > Because of this, the first time through the partition key expressions are > valid, but then onwards they are restamped with the varno of the first > partition. > > Please add testcases to your patch to catch such types of issues. I will integrate tests into the patch(es) and add some more. Thanks, Amit
В списке pgsql-hackers по дате отправления: