Fix compiler warnings
[smlar.git] / smlar.c
diff --git a/smlar.c b/smlar.c
index 5cbe5c2..ca0651f 100644 (file)
--- a/smlar.c
+++ b/smlar.c
@@ -16,7 +16,9 @@
 #include "utils/fmgroids.h"
 #include "utils/lsyscache.h"
 #include "utils/memutils.h"
+#if (PG_VERSION_NUM < 120000)
 #include "utils/tqual.h"
+#endif
 #include "utils/syscache.h"
 #include "utils/typcache.h"
 
@@ -28,6 +30,11 @@ PG_MODULE_MAGIC;
 #define SNAPSHOT SnapshotNow
 #endif
 
+#if PG_VERSION_NUM >= 130000
+#define heap_open(r, l)                        table_open((r), (l))
+#define heap_close(r, l)               table_close((r), (l))
+#endif
+
 static Oid
 getDefaultOpclass(Oid amoid, Oid typid)
 {
@@ -56,7 +63,11 @@ getDefaultOpclass(Oid amoid, Oid typid)
                {
                        if ( OidIsValid(opclassOid) )
                                elog(ERROR, "Ambiguous opclass for type %u (access method %u)", typid, amoid); 
+#if (PG_VERSION_NUM >= 120000)
+                       opclassOid = opclass->oid;
+#else
                        opclassOid = HeapTupleGetOid(tuple);
+#endif
                }
        }
 
@@ -91,9 +102,14 @@ getAMProc(Oid amoid, Oid typid)
                /*
                 * Search binary-coercible type
                 */
+#ifdef SearchSysCacheList1
+               catlist = SearchSysCacheList1(CASTSOURCETARGET,
+                                                                         ObjectIdGetDatum(typid));
+#else
                catlist = SearchSysCacheList(CASTSOURCETARGET, 1,
                                                                                ObjectIdGetDatum(typid),
                                                                                0, 0, 0);
+#endif
 
                for (i = 0; i < catlist->n_members; i++)
                {
@@ -171,6 +187,10 @@ getAMProc(Oid amoid, Oid typid)
 static ProcTypeInfo *cacheProcs = NULL;
 static int nCacheProcs = 0;
 
+#ifndef TupleDescAttr
+#define TupleDescAttr(tupdesc, i)      ((tupdesc)->attrs[(i)])
+#endif
+
 static ProcTypeInfo
 fillProcs(Oid typid)
 {
@@ -192,7 +212,7 @@ fillProcs(Oid typid)
 
                if (tupdesc->natts != 2)
                        elog(ERROR,"Composite type has wrong number of fields");
-               if (tupdesc->attrs[1]->atttypid != FLOAT4OID)
+               if (TupleDescAttr(tupdesc, 1)->atttypid != FLOAT4OID)
                        elog(ERROR,"Second field of composite type is not float4");
 
                oldcontext = MemoryContextSwitchTo(TopMemoryContext);
@@ -201,8 +221,10 @@ fillProcs(Oid typid)
 
                ReleaseTupleDesc(tupdesc);
 
-               info->cmpFuncOid = getAMProc(BTREE_AM_OID, info->tupDesc->attrs[0]->atttypid);
-               info->hashFuncOid = getAMProc(HASH_AM_OID, info->tupDesc->attrs[0]->atttypid);
+               info->cmpFuncOid = getAMProc(BTREE_AM_OID,
+                                                                        TupleDescAttr(info->tupDesc, 0)->atttypid);
+               info->hashFuncOid = getAMProc(HASH_AM_OID,
+                                                                         TupleDescAttr(info->tupDesc, 0)->atttypid);
        }
        else
        {
@@ -504,6 +526,7 @@ Array2SimpleArrayU(ProcTypeInfo info, ArrayType *a, void *cache)
                                                {
                                                        case TF_LOG:
                                                                s->df[i] = (1.0 + log( s->df[i] ));
+                                                               /* FALLTHROUGH */
                                                        case TF_N:
                                                                s->df[i] *= stat->idf;
                                                                break;