mirror of
https://github.com/postgres/postgres.git
synced 2025-07-12 21:01:52 +03:00
Reduce unnecessary list construction in RelationBuildPartitionDesc.
The 'partoids' list which was constructed by the previous version of this code was necessarily identical to 'inhoids'. There's no point to duplicating the list, so avoid that. Instead, construct the array representation directly from the original 'inhoids' list. Also, use an array rather than a list for 'boundspecs'. We know exactly how many items we need to store, so there's really no reason to use a list. Using an array instead reduces the number of memory allocations we perform. Patch by me, reviewed by Michael Paquier and Amit Langote, the latter of whom also helped with rebasing.
This commit is contained in:
@ -80,9 +80,8 @@ extern uint64 compute_partition_hash_value(int partnatts, FmgrInfo *partsupfunc,
|
||||
Datum *values, bool *isnull);
|
||||
extern List *get_qual_from_partbound(Relation rel, Relation parent,
|
||||
PartitionBoundSpec *spec);
|
||||
extern PartitionBoundInfo partition_bounds_create(List *boundspecs,
|
||||
PartitionKey key,
|
||||
int **mapping);
|
||||
extern PartitionBoundInfo partition_bounds_create(PartitionBoundSpec **boundspecs,
|
||||
int nparts, PartitionKey key, int **mapping);
|
||||
extern bool partition_bounds_equal(int partnatts, int16 *parttyplen,
|
||||
bool *parttypbyval, PartitionBoundInfo b1,
|
||||
PartitionBoundInfo b2);
|
||||
|
Reference in New Issue
Block a user