From 5115100db01c1cfdb2548e7b7e2466b6719b48d1 Mon Sep 17 00:00:00 2001 From: Ahmet Gedemenli Date: Wed, 16 Jun 2021 17:23:19 +0300 Subject: [PATCH] Set table size to zero if no size is read (#5049) * Set table size to zero if no size is read * Add comment to relation size bug fix --- .../distributed/metadata/metadata_utility.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/metadata/metadata_utility.c b/src/backend/distributed/metadata/metadata_utility.c index e0c04317b..9b4a7025a 100644 --- a/src/backend/distributed/metadata/metadata_utility.c +++ b/src/backend/distributed/metadata/metadata_utility.c @@ -644,7 +644,19 @@ DistributedTableSizeOnWorker(WorkerNode *workerNode, Oid relationId, StringInfo tableSizeStringInfo = (StringInfo) linitial(sizeList); char *tableSizeString = tableSizeStringInfo->data; - *tableSize = SafeStringToUint64(tableSizeString); + if (strlen(tableSizeString) > 0) + { + *tableSize = SafeStringToUint64(tableSizeString); + } + else + { + /* + * This means the shard is moved or dropped while citus_total_relation_size is + * being executed. For this case we get an empty string as table size. + * We can take that as zero to prevent any unnecessary errors. + */ + *tableSize = 0; + } PQclear(result); ClearResults(connection, failOnError);