Hi, On 2016/04/15 18:46, Ashutosh Bapat wrote: > > 3. PartitionKeyData contains KeyTypeCollInfo, whose contents can be > obtained by calling functions exprType, exprTypemod on partexprs. Why do we > need to store that information as a separate member?
There was no KeyTypeCollInfo in early days of the patch and then I found myself doing a lot of: partexprs_item = list_head(key->partexprs); for (attr in key->partattrs) { if (attr->attnum != 0) { // simple column reference, get type from attr } else { // expression, get type using exprType, etc. partexprs_item = lnext(partexprs_item); } } That ended up being quite a few places (though I managed to reduce the number of places over time). So, I created this struct which is initialized when partition key is built (on first open of the partitioned table). Thanks, Amit -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers