Rename IndexInfo.ii_KeyAttrNumbers array
authorTeodor Sigaev <[email protected]>
Thu, 12 Apr 2018 10:02:45 +0000 (13:02 +0300)
committerTeodor Sigaev <[email protected]>
Thu, 12 Apr 2018 10:02:45 +0000 (13:02 +0300)
Rename ii_KeyAttrNumbers to ii_IndexAttrNumbers to prevent confusion with
ii_NumIndexAttrs/ii_NumIndexKeyAttrs. ii_IndexAttrNumbers contains
all attributes including "including" columns, not only key attribute.

Discussion: https://www.postgresql.org/message-id/13123421-1d52-d0e4-c95c-6d69011e0595%40sigaev.ru

src/backend/catalog/index.c
src/backend/catalog/toasting.c
src/backend/commands/analyze.c
src/backend/commands/indexcmds.c
src/backend/utils/cache/relcache.c
src/backend/utils/sort/tuplesort.c
src/include/nodes/execnodes.h

index 218c457fa4365cfd159aead40e5593a7f4d063da..7fc7c01d766c181ab242e15223135bb753f9c304 100644 (file)
@@ -239,7 +239,7 @@ index_check_primary_key(Relation heapRel,
        cmds = NIL;
        for (i = 0; i < indexInfo->ii_NumIndexKeyAttrs; i++)
        {
-               AttrNumber      attnum = indexInfo->ii_KeyAttrNumbers[i];
+               AttrNumber      attnum = indexInfo->ii_IndexAttrNumbers[i];
                HeapTuple       atttuple;
                Form_pg_attribute attform;
 
@@ -324,7 +324,7 @@ ConstructTupleDescriptor(Relation heapRelation,
         */
        for (i = 0; i < numatts; i++)
        {
-               AttrNumber      atnum = indexInfo->ii_KeyAttrNumbers[i];
+               AttrNumber      atnum = indexInfo->ii_IndexAttrNumbers[i];
                Form_pg_attribute to = TupleDescAttr(indexTupDesc, i);
                HeapTuple       tuple;
                Form_pg_type typeTup;
@@ -607,7 +607,7 @@ UpdateIndexRelation(Oid indexoid,
         */
        indkey = buildint2vector(NULL, indexInfo->ii_NumIndexAttrs);
        for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
-               indkey->values[i] = indexInfo->ii_KeyAttrNumbers[i];
+               indkey->values[i] = indexInfo->ii_IndexAttrNumbers[i];
        indcollation = buildoidvector(collationOids, indexInfo->ii_NumIndexAttrs);
        indclass = buildoidvector(classOids, indexInfo->ii_NumIndexKeyAttrs);
        indoption = buildint2vector(coloptions, indexInfo->ii_NumIndexAttrs);
@@ -1041,11 +1041,11 @@ index_create(Relation heapRelation,
                        /* Create auto dependencies on simply-referenced columns */
                        for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
                        {
-                               if (indexInfo->ii_KeyAttrNumbers[i] != 0)
+                               if (indexInfo->ii_IndexAttrNumbers[i] != 0)
                                {
                                        referenced.classId = RelationRelationId;
                                        referenced.objectId = heapRelationId;
-                                       referenced.objectSubId = indexInfo->ii_KeyAttrNumbers[i];
+                                       referenced.objectSubId = indexInfo->ii_IndexAttrNumbers[i];
 
                                        recordDependencyOn(&myself, &referenced, deptype);
 
@@ -1297,7 +1297,7 @@ index_constraint_create(Relation heapRelation,
                                                                   true,
                                                                   parentConstraintId,
                                                                   RelationGetRelid(heapRelation),
-                                                                  indexInfo->ii_KeyAttrNumbers,
+                                                                  indexInfo->ii_IndexAttrNumbers,
                                                                   indexInfo->ii_NumIndexKeyAttrs,
                                                                   indexInfo->ii_NumIndexAttrs,
                                                                   InvalidOid,  /* no domain */
@@ -1757,7 +1757,7 @@ BuildIndexInfo(Relation index)
        Assert(ii->ii_NumIndexKeyAttrs <= ii->ii_NumIndexAttrs);
 
        for (i = 0; i < numAtts; i++)
-               ii->ii_KeyAttrNumbers[i] = indexStruct->indkey.values[i];
+               ii->ii_IndexAttrNumbers[i] = indexStruct->indkey.values[i];
 
        /* fetch any expressions needed for expressional indexes */
        ii->ii_Expressions = RelationGetIndexExpressions(index);
@@ -1840,13 +1840,13 @@ CompareIndexInfo(IndexInfo *info1, IndexInfo *info2,
         */
        for (i = 0; i < info1->ii_NumIndexAttrs; i++)
        {
-               if (maplen < info2->ii_KeyAttrNumbers[i])
+               if (maplen < info2->ii_IndexAttrNumbers[i])
                        elog(ERROR, "incorrect attribute map");
 
                /* ignore expressions at this stage */
-               if ((info1->ii_KeyAttrNumbers[i] != InvalidAttrNumber) &&
-                       (attmap[info2->ii_KeyAttrNumbers[i] - 1] !=
-                       info1->ii_KeyAttrNumbers[i]))
+               if ((info1->ii_IndexAttrNumbers[i] != InvalidAttrNumber) &&
+                       (attmap[info2->ii_IndexAttrNumbers[i] - 1] !=
+                       info1->ii_IndexAttrNumbers[i]))
                        return false;
 
                if (collations1[i] != collations2[i])
@@ -2007,7 +2007,7 @@ FormIndexDatum(IndexInfo *indexInfo,
 
        for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
        {
-               int                     keycol = indexInfo->ii_KeyAttrNumbers[i];
+               int                     keycol = indexInfo->ii_IndexAttrNumbers[i];
                Datum           iDatum;
                bool            isNull;
 
index 9fb2e6b06e850854f456d95c095ce14f2442b52b..3baaa0823815cc887cc83ab9baba571201144e48 100644 (file)
@@ -304,8 +304,8 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid,
        indexInfo = makeNode(IndexInfo);
        indexInfo->ii_NumIndexAttrs = 2;
        indexInfo->ii_NumIndexKeyAttrs = 2;
-       indexInfo->ii_KeyAttrNumbers[0] = 1;
-       indexInfo->ii_KeyAttrNumbers[1] = 2;
+       indexInfo->ii_IndexAttrNumbers[0] = 1;
+       indexInfo->ii_IndexAttrNumbers[1] = 2;
        indexInfo->ii_Expressions = NIL;
        indexInfo->ii_ExpressionsState = NIL;
        indexInfo->ii_Predicate = NIL;
index d471541097d784763df1b3d30f3250f8aef7aa6a..25194e871c00710b55508583d02e0fbc3165bb67 100644 (file)
@@ -495,7 +495,7 @@ do_analyze_rel(Relation onerel, int options, VacuumParams *params,
                                tcnt = 0;
                                for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
                                {
-                                       int                     keycol = indexInfo->ii_KeyAttrNumbers[i];
+                                       int                     keycol = indexInfo->ii_IndexAttrNumbers[i];
 
                                        if (keycol == 0)
                                        {
index 860a60d1096d264e0d3534c50a063848e5bddc65..3d90204d420093253c4936e224dc8b6f19126bd4 100644 (file)
@@ -724,7 +724,7 @@ DefineIndex(Oid relationId,
 
                        for (j = 0; j < indexInfo->ii_NumIndexAttrs; j++)
                        {
-                               if (key->partattrs[i] == indexInfo->ii_KeyAttrNumbers[j])
+                               if (key->partattrs[i] == indexInfo->ii_IndexAttrNumbers[j])
                                {
                                        found = true;
                                        break;
@@ -753,7 +753,7 @@ DefineIndex(Oid relationId,
         */
        for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
        {
-               AttrNumber      attno = indexInfo->ii_KeyAttrNumbers[i];
+               AttrNumber      attno = indexInfo->ii_IndexAttrNumbers[i];
 
                if (attno < 0 && attno != ObjectIdAttributeNumber)
                        ereport(ERROR,
@@ -1428,7 +1428,7 @@ ComputeIndexAttrs(IndexInfo *indexInfo,
                                                                        attribute->name)));
                        }
                        attform = (Form_pg_attribute) GETSTRUCT(atttuple);
-                       indexInfo->ii_KeyAttrNumbers[attn] = attform->attnum;
+                       indexInfo->ii_IndexAttrNumbers[attn] = attform->attnum;
                        atttype = attform->atttypid;
                        attcollation = attform->attcollation;
                        ReleaseSysCache(atttuple);
@@ -1461,11 +1461,11 @@ ComputeIndexAttrs(IndexInfo *indexInfo,
                                 * User wrote "(column)" or "(column COLLATE something)".
                                 * Treat it like simple attribute anyway.
                                 */
-                               indexInfo->ii_KeyAttrNumbers[attn] = ((Var *) expr)->varattno;
+                               indexInfo->ii_IndexAttrNumbers[attn] = ((Var *) expr)->varattno;
                        }
                        else
                        {
-                               indexInfo->ii_KeyAttrNumbers[attn] = 0; /* marks expression */
+                               indexInfo->ii_IndexAttrNumbers[attn] = 0; /* marks expression */
                                indexInfo->ii_Expressions = lappend(indexInfo->ii_Expressions,
                                                                                                        expr);
 
index e81c4691ec2b5eb4f6ff323c29202356008d40e6..fd2a3cc8c3d7d0cb13761a393444046b1039a694 100644 (file)
@@ -5065,7 +5065,7 @@ restart:
                /* Collect simple attribute references */
                for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
                {
-                       int                     attrnum = indexInfo->ii_KeyAttrNumbers[i];
+                       int                     attrnum = indexInfo->ii_IndexAttrNumbers[i];
 
                        /*
                         * Since we have covering indexes with non-key columns, we must
index a0c0d6f701a289c93e6ae66fe439a137c65b6ad9..e6a8d22feb281e24ce1594ce7302e5f7d839cd12 100644 (file)
@@ -3718,7 +3718,7 @@ comparetup_cluster(const SortTuple *a, const SortTuple *b,
                                datum2;
        bool            isnull1,
                                isnull2;
-       AttrNumber      leading = state->indexInfo->ii_KeyAttrNumbers[0];
+       AttrNumber      leading = state->indexInfo->ii_IndexAttrNumbers[0];
 
        /* Be prepared to compare additional sort keys */
        ltup = (HeapTuple) a->tuple;
@@ -3761,7 +3761,7 @@ comparetup_cluster(const SortTuple *a, const SortTuple *b,
 
                for (; nkey < state->nKeys; nkey++, sortKey++)
                {
-                       AttrNumber      attno = state->indexInfo->ii_KeyAttrNumbers[nkey];
+                       AttrNumber      attno = state->indexInfo->ii_IndexAttrNumbers[nkey];
 
                        datum1 = heap_getattr(ltup, attno, tupDesc, &isnull1);
                        datum2 = heap_getattr(rtup, attno, tupDesc, &isnull2);
@@ -3833,11 +3833,11 @@ copytup_cluster(Tuplesortstate *state, SortTuple *stup, void *tup)
         * set up first-column key value, and potentially abbreviate, if it's a
         * simple column
         */
-       if (state->indexInfo->ii_KeyAttrNumbers[0] == 0)
+       if (state->indexInfo->ii_IndexAttrNumbers[0] == 0)
                return;
 
        original = heap_getattr(tuple,
-                                                       state->indexInfo->ii_KeyAttrNumbers[0],
+                                                       state->indexInfo->ii_IndexAttrNumbers[0],
                                                        state->tupDesc,
                                                        &stup->isnull1);
 
@@ -3881,7 +3881,7 @@ copytup_cluster(Tuplesortstate *state, SortTuple *stup, void *tup)
 
                        tuple = (HeapTuple) mtup->tuple;
                        mtup->datum1 = heap_getattr(tuple,
-                                                                               state->indexInfo->ii_KeyAttrNumbers[0],
+                                                                               state->indexInfo->ii_IndexAttrNumbers[0],
                                                                                state->tupDesc,
                                                                                &mtup->isnull1);
                }
@@ -3935,9 +3935,9 @@ readtup_cluster(Tuplesortstate *state, SortTuple *stup,
                                                         &tuplen, sizeof(tuplen));
        stup->tuple = (void *) tuple;
        /* set up first-column key value, if it's a simple column */
-       if (state->indexInfo->ii_KeyAttrNumbers[0] != 0)
+       if (state->indexInfo->ii_IndexAttrNumbers[0] != 0)
                stup->datum1 = heap_getattr(tuple,
-                                                                       state->indexInfo->ii_KeyAttrNumbers[0],
+                                                                       state->indexInfo->ii_IndexAttrNumbers[0],
                                                                        state->tupDesc,
                                                                        &stup->isnull1);
 }
index deab87546635e228a0d41172fb5eeecbe527bf81..c53e1132697deef27fa8c51e5c77ae793db040b3 100644 (file)
@@ -150,7 +150,7 @@ typedef struct IndexInfo
        NodeTag         type;
        int                     ii_NumIndexAttrs;       /* total number of columns in index */
        int                     ii_NumIndexKeyAttrs;    /* number of key columns in index */
-       AttrNumber      ii_KeyAttrNumbers[INDEX_MAX_KEYS];
+       AttrNumber      ii_IndexAttrNumbers[INDEX_MAX_KEYS];
        List       *ii_Expressions; /* list of Expr */
        List       *ii_ExpressionsState;        /* list of ExprState */
        List       *ii_Predicate;       /* list of Expr */