Replace BackendIds with 0-based ProcNumbers Marina Polyakova <m.polyakova@postgrespro.ru>
[plantuner.git] / plantuner.c
index b22ef9c..e454698 100644 (file)
@@ -35,6 +35,9 @@
 #include <access/xact.h>
 #include <catalog/namespace.h>
 #include <catalog/pg_class.h>
+#if PG_VERSION_NUM >= 160000
+#include <nodes/miscnodes.h>
+#endif
 #include <nodes/pg_list.h>
 #include <optimizer/plancat.h>
 #include <storage/bufmgr.h>
 
 PG_MODULE_MAGIC;
 
+#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 int     nDisabledIndexes = 0;
 static Oid     *disabledIndexes = NULL;
 static char *disableIndexesOutStr = "";
@@ -94,7 +102,12 @@ indexesAssign(const char * newval, bool doit, GucSource source,
         * follow work could be done only in normal processing because of
         * accsess to system catalog
         */
-       if (MyBackendId == InvalidBackendId || !IsUnderPostmaster ||
+#if PG_VERSION_NUM >= 170000
+       if (MyProcNumber == INVALID_PROC_NUMBER ||
+#else
+       if (MyBackendId == InvalidBackendId ||
+#endif
+               !IsUnderPostmaster ||
                !IsTransactionState())
        {
                /* reset init state */
@@ -144,9 +157,23 @@ indexesAssign(const char * newval, bool doit, GucSource source,
        {
                char    *curname = (char *) lfirst(l);
 #if PG_VERSION_NUM >= 90200
-               Oid             indexOid = RangeVarGetRelid(
-                               makeRangeVarFromNameList(stringToQualifiedNameList(curname)),
-                                                                                       NoLock, true);
+               List    *cur_namelist;
+               Oid             indexOid;
+
+#if PG_VERSION_NUM >= 160000
+               ErrorSaveContext escontext = {T_ErrorSaveContext};
+
+               cur_namelist = stringToQualifiedNameList(curname, (Node *) &escontext);
+
+               /* bad name list syntax */
+               if (cur_namelist == NIL)
+                       continue;
+#else
+               cur_namelist = stringToQualifiedNameList(curname);
+#endif
+
+               indexOid = RangeVarGetRelid(makeRangeVarFromNameList(cur_namelist),
+                                                                       NoLock, true);
 #else
                Oid             indexOid = RangeVarGetRelid(
                                makeRangeVarFromNameList(stringToQualifiedNameList(curname)),