From 1af8ca8f7cf2046e4a6817dba8967ce11e0724d7 Mon Sep 17 00:00:00 2001 From: Hanefi Onaldi Date: Wed, 22 Dec 2021 18:16:11 +0300 Subject: [PATCH] Fix statical analysis findings (#5550) --- src/backend/distributed/commands/alter_table.c | 2 +- src/backend/distributed/metadata/metadata_cache.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/commands/alter_table.c b/src/backend/distributed/commands/alter_table.c index cc2ebd33e..223a06318 100644 --- a/src/backend/distributed/commands/alter_table.c +++ b/src/backend/distributed/commands/alter_table.c @@ -1190,7 +1190,7 @@ CreateDistributedTableLike(TableConversionState *con) * at this moment, but that's going to be the table in pg_dist_partition. */ Oid parentRelationId = PartitionParentOid(originalRelationId); - Var *parentDistKey = DistPartitionKey(parentRelationId); + Var *parentDistKey = DistPartitionKeyOrError(parentRelationId); char *parentDistKeyColumnName = ColumnToColumnName(parentRelationId, nodeToString(parentDistKey)); diff --git a/src/backend/distributed/metadata/metadata_cache.c b/src/backend/distributed/metadata/metadata_cache.c index 52c4d258e..ce05f7c28 100644 --- a/src/backend/distributed/metadata/metadata_cache.c +++ b/src/backend/distributed/metadata/metadata_cache.c @@ -4353,6 +4353,13 @@ GetIntervalTypeInfo(char partitionMethod, Var *partitionColumn, case DISTRIBUTE_BY_APPEND: case DISTRIBUTE_BY_RANGE: { + /* we need a valid partition column Var in this case */ + if (partitionColumn == NULL) + { + ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), + errmsg("unexpected partition column value: null"), + errdetail("Please report this to the Citus core team."))); + } *intervalTypeId = partitionColumn->vartype; *intervalTypeMod = partitionColumn->vartypmod; break;