From 2ba3bffe1e33a95ab6d1061e7442328b58911cfe Mon Sep 17 00:00:00 2001 From: Naisila Puka <37271756+naisila@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:36:43 +0300 Subject: [PATCH] Random warning fixes (#6974) Citus build with PG16 fails because of the following warnings: - using char* instead of Datum - using pointer instead of oid - candidate function for format attribute - remove old definition from PG11 compatibility https://github.com/citusdata/citus/commit/62bf571cedcfdf4451614b8520448d105df07045 This commit fixes the above. --- src/backend/columnar/columnar_reader.c | 2 +- src/backend/distributed/metadata/node_metadata.c | 8 ++++---- .../distributed/test/foreign_key_relationship_query.c | 4 ++-- src/backend/distributed/utils/citus_safe_lib.c | 4 +--- src/include/distributed/citus_safe_lib.h | 3 ++- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/backend/columnar/columnar_reader.c b/src/backend/columnar/columnar_reader.c index dec19929b..7917a446a 100644 --- a/src/backend/columnar/columnar_reader.c +++ b/src/backend/columnar/columnar_reader.c @@ -1557,7 +1557,7 @@ DeserializeDatumArray(StringInfo datumBuffer, bool *existsArray, uint32 datumCou datumTypeLength); currentDatumDataOffset = att_addlength_datum(currentDatumDataOffset, datumTypeLength, - currentDatumDataPointer); + datumArray[datumIndex]); currentDatumDataOffset = att_align_nominal(currentDatumDataOffset, datumTypeAlign); diff --git a/src/backend/distributed/metadata/node_metadata.c b/src/backend/distributed/metadata/node_metadata.c index 8586ac934..60a5ab92b 100644 --- a/src/backend/distributed/metadata/node_metadata.c +++ b/src/backend/distributed/metadata/node_metadata.c @@ -2871,15 +2871,15 @@ TupleToWorkerNode(TupleDesc tupleDescriptor, HeapTuple heapTuple) */ heap_deform_tuple(heapTuple, tupleDescriptor, datumArray, isNullArray); - char *nodeName = DatumGetCString(datumArray[Anum_pg_dist_node_nodename - 1]); - char *nodeRack = DatumGetCString(datumArray[Anum_pg_dist_node_noderack - 1]); + char *nodeName = TextDatumGetCString(datumArray[Anum_pg_dist_node_nodename - 1]); + char *nodeRack = TextDatumGetCString(datumArray[Anum_pg_dist_node_noderack - 1]); WorkerNode *workerNode = (WorkerNode *) palloc0(sizeof(WorkerNode)); workerNode->nodeId = DatumGetUInt32(datumArray[Anum_pg_dist_node_nodeid - 1]); workerNode->workerPort = DatumGetUInt32(datumArray[Anum_pg_dist_node_nodeport - 1]); workerNode->groupId = DatumGetInt32(datumArray[Anum_pg_dist_node_groupid - 1]); - strlcpy(workerNode->workerName, TextDatumGetCString(nodeName), WORKER_LENGTH); - strlcpy(workerNode->workerRack, TextDatumGetCString(nodeRack), WORKER_LENGTH); + strlcpy(workerNode->workerName, nodeName, WORKER_LENGTH); + strlcpy(workerNode->workerRack, nodeRack, WORKER_LENGTH); workerNode->hasMetadata = DatumGetBool(datumArray[Anum_pg_dist_node_hasmetadata - 1]); workerNode->metadataSynced = DatumGetBool(datumArray[Anum_pg_dist_node_metadatasynced - 1]); diff --git a/src/backend/distributed/test/foreign_key_relationship_query.c b/src/backend/distributed/test/foreign_key_relationship_query.c index e83e95bac..545c2e970 100644 --- a/src/backend/distributed/test/foreign_key_relationship_query.c +++ b/src/backend/distributed/test/foreign_key_relationship_query.c @@ -119,7 +119,7 @@ get_referencing_relation_id_list(PG_FUNCTION_ARGS) wrapper->listCell = lnext(wrapper->list, wrapper->listCell); - SRF_RETURN_NEXT(functionContext, PointerGetDatum(refId)); + SRF_RETURN_NEXT(functionContext, ObjectIdGetDatum(refId)); } else { @@ -178,7 +178,7 @@ get_referenced_relation_id_list(PG_FUNCTION_ARGS) wrapper->listCell = lnext(wrapper->list, wrapper->listCell); - SRF_RETURN_NEXT(functionContext, PointerGetDatum(refId)); + SRF_RETURN_NEXT(functionContext, ObjectIdGetDatum(refId)); } else { diff --git a/src/backend/distributed/utils/citus_safe_lib.c b/src/backend/distributed/utils/citus_safe_lib.c index 0b830fafc..82fa8f6f2 100644 --- a/src/backend/distributed/utils/citus_safe_lib.c +++ b/src/backend/distributed/utils/citus_safe_lib.c @@ -23,8 +23,6 @@ #include "distributed/citus_safe_lib.h" #include "lib/stringinfo.h" -#define citus_vsnprintf pg_vsnprintf - /* * ereport_constraint_handler is a constraint handler that calls ereport. A @@ -338,7 +336,7 @@ SafeSnprintf(char *restrict buffer, rsize_t bufsz, const char *restrict format, va_list args; va_start(args, format); - size_t result = citus_vsnprintf(buffer, bufsz, format, args); + int result = pg_vsnprintf(buffer, bufsz, format, args); va_end(args); return result; } diff --git a/src/include/distributed/citus_safe_lib.h b/src/include/distributed/citus_safe_lib.h index e039072a7..62142df0a 100644 --- a/src/include/distributed/citus_safe_lib.h +++ b/src/include/distributed/citus_safe_lib.h @@ -25,7 +25,8 @@ extern void SafeQsort(void *ptr, rsize_t count, rsize_t size, int (*comp)(const void *, const void *)); void * SafeBsearch(const void *key, const void *ptr, rsize_t count, rsize_t size, int (*comp)(const void *, const void *)); -int SafeSnprintf(char *str, rsize_t count, const char *fmt, ...); +int SafeSnprintf(char *str, rsize_t count, const char *fmt, ...) pg_attribute_printf(3, + 0); #define memset_struct_0(variable) memset(&variable, 0, sizeof(variable))