You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by ma...@apache.org on 2025/11/19 08:07:20 UTC

(cloudberry) branch main updated: Fix analyze paritioned table in somecase will coredump.

This is an automated email from the ASF dual-hosted git repository.

maxyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/main by this push:
     new 66eedec0332 Fix analyze paritioned table in somecase will coredump.
66eedec0332 is described below

commit 66eedec0332aaebf7ac7bb8637816859b667a0cd
Author: zhangwenchao <65...@qq.com>
AuthorDate: Mon Nov 17 15:15:35 2025 +0800

    Fix analyze paritioned table in somecase will coredump.
    
    Fix leaf_parts_analyzed will return false directly without execute analyze when
    reltuples is 0 and relpages is 0 that means the table is an empty partition table.
    
    Authored-by: Zhang Wenchao <zh...@apache.org>
---
 src/backend/commands/analyzeutils.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/analyzeutils.c b/src/backend/commands/analyzeutils.c
index c0d048c9a64..c4f9fa5dedb 100644
--- a/src/backend/commands/analyzeutils.c
+++ b/src/backend/commands/analyzeutils.c
@@ -1252,9 +1252,10 @@ leaf_parts_analyzed(Oid attrelid, Oid relid_exclude, List *va_cols, int elevel)
 			continue;
 
 		float4		relTuples = get_rel_reltuples(partRelid);
+		int32		relpages = get_rel_relpages(partRelid);
 
 		/* Partition is not analyzed */
-		if (relTuples < 0.0)
+		if (relTuples < 0.0 || (relTuples == 0.0 && relpages == 0))
 		{
 			if (relid_exclude == InvalidOid)
 				ereport(elevel,


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org