diff --git a/src/backend/columnar/columnar_metadata.c b/src/backend/columnar/columnar_metadata.c index a11138d0d..1afd6af55 100644 --- a/src/backend/columnar/columnar_metadata.c +++ b/src/backend/columnar/columnar_metadata.c @@ -645,10 +645,10 @@ SaveStripeSkipList(RelFileLocator relfilelocator, uint64 stripe, { values[Anum_columnar_chunk_minimum_value - 1] = PointerGetDatum(DatumToBytea(chunk->minimumValue, - &tupleDescriptor->attrs[columnIndex])); + Attr(tupleDescriptor, columnIndex))); values[Anum_columnar_chunk_maximum_value - 1] = PointerGetDatum(DatumToBytea(chunk->maximumValue, - &tupleDescriptor->attrs[columnIndex])); + Attr(tupleDescriptor, columnIndex))); } else { @@ -803,9 +803,9 @@ ReadStripeSkipList(RelFileLocator relfilelocator, uint64 stripe, datumArray[Anum_columnar_chunk_maximum_value - 1]); chunk->minimumValue = - ByteaToDatum(minValue, &tupleDescriptor->attrs[columnIndex]); + ByteaToDatum(minValue, Attr(tupleDescriptor, columnIndex)); chunk->maximumValue = - ByteaToDatum(maxValue, &tupleDescriptor->attrs[columnIndex]); + ByteaToDatum(maxValue, Attr(tupleDescriptor, columnIndex)); chunk->hasMinMax = true; } diff --git a/src/include/columnar/columnar_version_compat.h b/src/include/columnar/columnar_version_compat.h index d6908aced..640170297 100644 --- a/src/include/columnar/columnar_version_compat.h +++ b/src/include/columnar/columnar_version_compat.h @@ -9,14 +9,27 @@ *------------------------------------------------------------------------- */ -#ifndef COLUMNAR_COMPAT_H -#define COLUMNAR_COMPAT_H + #ifndef COLUMNAR_VERSION_COMPAT_H + #define COLUMNAR_VERSION_COMPAT_H #include "pg_version_constants.h" +/* for PG_VERSION_NUM and TupleDescAttr() */ +#include "postgres.h" +#include "access/htup_details.h" + + #define ACLCHECK_OBJECT_TABLE OBJECT_TABLE #define ExplainPropertyLong(qlabel, value, es) \ ExplainPropertyInteger(qlabel, NULL, value, es) + +/* tuple-descriptor attributes moved in PostgreSQL 18: */ +#if PG_VERSION_NUM >= 180000 +# define Attr(tupdesc, colno) TupleDescAttr((tupdesc), (colno)) +#else +# define Attr(tupdesc, colno) ((tupdesc)->attrs[(colno)]) +#endif + #endif /* COLUMNAR_COMPAT_H */