0001-Add-stats-info-for-Vars-in-CTEs.patch

text/x-patch

Filename: 0001-Add-stats-info-for-Vars-in-CTEs.patch
Type: text/x-patch
Part: 0
Message: Re: Wrong rows estimations with joins of CTEs slows queries by more than factor 500

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch 0001
Subject: Add stats info for Vars in CTEs.
File+
src/backend/utils/adt/selfuncs.c 4 1
From 29db9f3a6e6592cf277b011b7f92bb7bc0c69baf Mon Sep 17 00:00:00 2001
From: Jian Guo <xihuke@gmail.com>
Date: Wed, 9 Aug 2023 03:32:01 -0400
Subject: [PATCH] Add stats info for Vars in CTEs.

Signed-off-by: Jian Guo <gjian@vmware.com>
---
 src/backend/utils/adt/selfuncs.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 9f5536c04b6..b70b779a595 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -5343,7 +5343,10 @@ get_variable_numdistinct(VariableStatData *vardata, bool *isdefault)
 					stadistinct = getgpsegmentCount();
 					break;
 				default:
-					stadistinct = 0.0;	/* means "unknown" */
+					if (vardata->rel->rtekind == RTE_CTE)
+						stadistinct = -1.0;
+					else
+						stadistinct = 0.0;	/* means "unknown" */
 					break;
 			}
 		}
-- 
2.37.3