Remove RelationGetIndexRawAttOptions()
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 3 Oct 2023 15:40:15 +0000 (17:40 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 3 Oct 2023 15:51:02 +0000 (17:51 +0200)
There was only one caller left, for which this function was overkill.

Also, having it in relcache.c was inappropriate, since it doesn't work
with the relcache at all.

Discussion: https://www.postgresql.org/message-id/flat/f84640e3-00d3-5abd-3f41-e6a19d33c40b@eisentraut.org

src/backend/commands/indexcmds.c
src/backend/utils/cache/relcache.c
src/include/utils/relcache.h

index a53861cecf79d26bda2038d5d65119b3d9e32cae..c160d8a301f080f86d9442d4975565533cbfae26 100644 (file)
@@ -301,12 +301,14 @@ CheckIndexCompatible(Oid oldId,
        /* Any change in opclass options break compatibility. */
        if (ret)
        {
-               Datum      *oldOpclassOptions = RelationGetIndexRawAttOptions(irel);
+               Datum      *oldOpclassOptions = palloc_array(Datum, old_natts);
+
+               for (i = 0; i < old_natts; i++)
+                       oldOpclassOptions[i] = get_attoptions(oldId, i + 1);
 
                ret = CompareOpclassOptions(oldOpclassOptions, opclassOptions, old_natts);
 
-               if (oldOpclassOptions)
-                       pfree(oldOpclassOptions);
+               pfree(oldOpclassOptions);
        }
 
        /* Any change in exclusion operator selections breaks compatibility. */
index 7234cb3da6947572d0f1a31b0f32a73ddb5ea4e8..a49ab465b36d05637cf1f9d321666a6930e1a998 100644 (file)
@@ -5821,35 +5821,6 @@ RelationBuildPublicationDesc(Relation relation, PublicationDesc *pubdesc)
        MemoryContextSwitchTo(oldcxt);
 }
 
-/*
- * RelationGetIndexRawAttOptions -- get AM/opclass-specific options for the index
- */
-Datum *
-RelationGetIndexRawAttOptions(Relation indexrel)
-{
-       Oid                     indexrelid = RelationGetRelid(indexrel);
-       int16           natts = RelationGetNumberOfAttributes(indexrel);
-       Datum      *options = NULL;
-       int16           attnum;
-
-       for (attnum = 1; attnum <= natts; attnum++)
-       {
-               if (indexrel->rd_indam->amoptsprocnum == 0)
-                       continue;
-
-               if (!OidIsValid(index_getprocid(indexrel, attnum,
-                                                                               indexrel->rd_indam->amoptsprocnum)))
-                       continue;
-
-               if (!options)
-                       options = palloc0(sizeof(Datum) * natts);
-
-               options[attnum - 1] = get_attoptions(indexrelid, attnum);
-       }
-
-       return options;
-}
-
 static bytea **
 CopyIndexAttOptions(bytea **srcopts, int natts)
 {
index 38524641f470414ef4a9f844d2702b1b55677c8b..b0955c0e62323e16a3771f81ff9d5c3865e70e22 100644 (file)
@@ -51,7 +51,6 @@ extern Oid    RelationGetReplicaIndex(Relation relation);
 extern List *RelationGetIndexExpressions(Relation relation);
 extern List *RelationGetDummyIndexExpressions(Relation relation);
 extern List *RelationGetIndexPredicate(Relation relation);
-extern Datum *RelationGetIndexRawAttOptions(Relation indexrel);
 extern bytea **RelationGetIndexAttOptions(Relation relation, bool copy);
 
 /*