]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Use TupleDescAttr macro consistently
authorDavid Rowley <drowley@postgresql.org>
Tue, 2 Jul 2024 01:41:47 +0000 (13:41 +1200)
committerDavid Rowley <drowley@postgresql.org>
Tue, 2 Jul 2024 01:41:47 +0000 (13:41 +1200)
A few places were directly accessing the attrs[] array. This goes
against the standards set by 2cd708452. Fix that.

Discussion: https://postgr.es/m/CAApHDvrBztXP3yx=NKNmo3xwFAFhEdyPnvrDg3=M0RhDs+4vYw@mail.gmail.com

contrib/pageinspect/gistfuncs.c
src/backend/catalog/heap.c
src/backend/commands/prepare.c
src/backend/executor/nodeIndexonlyscan.c
src/backend/executor/nodeMemoize.c
src/backend/optimizer/util/plancat.c

index b38f1d32f761e94ea04a6c935c77ab1e4d76557a..1cc3b8c9e909c1d0210a4055bab7c0e28438cd04 100644 (file)
@@ -309,7 +309,7 @@ gist_page_items(PG_FUNCTION_ARGS)
                                        bool            typisvarlena;
                                        Oid                     typoid;
 
-                                       typoid = tupdesc->attrs[i].atttypid;
+                                       typoid = TupleDescAttr(tupdesc, i)->atttypid;
                                        getTypeOutputInfo(typoid, &foutoid, &typisvarlena);
                                        value = OidOutputFunctionCall(foutoid, itup_values[i]);
                                }
index ae2efdc760d19b40417995713e4bafafe9b9f8ef..00074c8a9485f9bea614dd26e927470d5bd56e82 100644 (file)
@@ -839,18 +839,19 @@ AddNewAttributeTuples(Oid new_rel_oid,
        /* add dependencies on their datatypes and collations */
        for (int i = 0; i < natts; i++)
        {
+               Form_pg_attribute attr = TupleDescAttr(tupdesc, i);
+
                /* Add dependency info */
                ObjectAddressSubSet(myself, RelationRelationId, new_rel_oid, i + 1);
-               ObjectAddressSet(referenced, TypeRelationId,
-                                                tupdesc->attrs[i].atttypid);
+               ObjectAddressSet(referenced, TypeRelationId, attr->atttypid);
                recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
 
                /* The default collation is pinned, so don't bother recording it */
-               if (OidIsValid(tupdesc->attrs[i].attcollation) &&
-                       tupdesc->attrs[i].attcollation != DEFAULT_COLLATION_OID)
+               if (OidIsValid(attr->attcollation) &&
+                       attr->attcollation != DEFAULT_COLLATION_OID)
                {
                        ObjectAddressSet(referenced, CollationRelationId,
-                                                        tupdesc->attrs[i].attcollation);
+                                                        attr->attcollation);
                        recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
                }
        }
index 5e85585e9dd61dbc73a4ac89ab93e218e205ed47..07257d4db94773ef47d0683f9c1cf9b320c4551a 100644 (file)
@@ -717,7 +717,7 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
 
                                result_types = palloc_array(Oid, result_desc->natts);
                                for (int i = 0; i < result_desc->natts; i++)
-                                       result_types[i] = result_desc->attrs[i].atttypid;
+                                       result_types[i] = TupleDescAttr(result_desc, i)->atttypid;
                                values[4] = build_regtype_array(result_types, result_desc->natts);
                        }
                        else
index b49194c0167afd2901bae933f6d163a7adc33bd5..612c6738950e19f2f09085021cbe673e98288007 100644 (file)
@@ -658,7 +658,7 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags)
        /* First, count the number of such index keys */
        for (int attnum = 0; attnum < indnkeyatts; attnum++)
        {
-               if (indexRelation->rd_att->attrs[attnum].atttypid == CSTRINGOID &&
+               if (TupleDescAttr(indexRelation->rd_att, attnum)->atttypid == CSTRINGOID &&
                        indexRelation->rd_opcintype[attnum] == NAMEOID)
                        namecount++;
        }
@@ -676,7 +676,7 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags)
 
                for (int attnum = 0; attnum < indnkeyatts; attnum++)
                {
-                       if (indexRelation->rd_att->attrs[attnum].atttypid == CSTRINGOID &&
+                       if (TupleDescAttr(indexRelation->rd_att, attnum)->atttypid == CSTRINGOID &&
                                indexRelation->rd_opcintype[attnum] == NAMEOID)
                                indexstate->ioss_NameCStringAttNums[idx++] = (AttrNumber) attnum;
                }
index 45157ffb9c7ab3855294343db2bac54188a9e2d5..df8e3fff0824bf25e4fdcca9cd27d1045b5a33d9 100644 (file)
@@ -175,10 +175,10 @@ MemoizeHash_hash(struct memoize_hash *tb, const MemoizeKey *key)
 
                        if (!pslot->tts_isnull[i])      /* treat nulls as having hash key 0 */
                        {
-                               FormData_pg_attribute *attr;
+                               Form_pg_attribute attr;
                                uint32          hkey;
 
-                               attr = &pslot->tts_tupleDescriptor->attrs[i];
+                               attr = TupleDescAttr(pslot->tts_tupleDescriptor, i);
 
                                hkey = datum_image_hash(pslot->tts_values[i], attr->attbyval, attr->attlen);
 
@@ -242,7 +242,7 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1,
 
                for (int i = 0; i < numkeys; i++)
                {
-                       FormData_pg_attribute *attr;
+                       Form_pg_attribute attr;
 
                        if (tslot->tts_isnull[i] != pslot->tts_isnull[i])
                        {
@@ -255,7 +255,7 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1,
                                continue;
 
                        /* perform binary comparison on the two datums */
-                       attr = &tslot->tts_tupleDescriptor->attrs[i];
+                       attr = TupleDescAttr(tslot->tts_tupleDescriptor, i);
                        if (!datum_image_eq(tslot->tts_values[i], pslot->tts_values[i],
                                                                attr->attbyval, attr->attlen))
                        {
index 775955363ef5f74e8a533d8440e7ef7cd8aa4c37..9efdd844aac44eab6a7bf6f274c29bea5c162f4a 100644 (file)
@@ -174,7 +174,7 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
        {
                for (int i = 0; i < relation->rd_att->natts; i++)
                {
-                       FormData_pg_attribute *attr = &relation->rd_att->attrs[i];
+                       Form_pg_attribute attr = TupleDescAttr(relation->rd_att, i);
 
                        if (attr->attnotnull)
                        {