mirror of
https://github.com/postgres/postgres.git
synced 2025-11-07 19:06:32 +03:00
Adjust creation/destruction of TupleDesc data structure to reduce the
number of palloc calls. This has a salutory impact on plpgsql operations with record variables (which create and destroy tupdescs constantly) and probably helps a bit in some other cases too.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.245 2005/03/04 20:21:05 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.246 2005/03/07 04:42:16 tgl Exp $
|
||||
*
|
||||
*
|
||||
* INTERFACE ROUTINES
|
||||
@@ -97,14 +97,11 @@ ConstructTupleDescriptor(Relation heapRelation,
|
||||
for (i = 0; i < numatts; i++)
|
||||
{
|
||||
AttrNumber atnum = indexInfo->ii_KeyAttrNumbers[i];
|
||||
Form_pg_attribute to;
|
||||
Form_pg_attribute to = indexTupDesc->attrs[i];
|
||||
HeapTuple tuple;
|
||||
Form_pg_type typeTup;
|
||||
Oid keyType;
|
||||
|
||||
indexTupDesc->attrs[i] = to =
|
||||
(Form_pg_attribute) palloc0(ATTRIBUTE_TUPLE_SIZE);
|
||||
|
||||
if (atnum != 0)
|
||||
{
|
||||
/* Simple index column */
|
||||
@@ -152,6 +149,8 @@ ConstructTupleDescriptor(Relation heapRelation,
|
||||
/* Expressional index */
|
||||
Node *indexkey;
|
||||
|
||||
MemSet(to, 0, ATTRIBUTE_TUPLE_SIZE);
|
||||
|
||||
if (indexpr_item == NULL) /* shouldn't happen */
|
||||
elog(ERROR, "too few entries in indexprs list");
|
||||
indexkey = (Node *) lfirst(indexpr_item);
|
||||
|
||||
Reference in New Issue
Block a user