From 75e03c2042d96a8df0586f27fe141523059d5c85 Mon Sep 17 00:00:00 2001
From: "yizhi.fzh" <yizhi.fzh@alibaba-inc.com>
Date: Mon, 26 Feb 2024 09:58:37 +0800
Subject: [PATCH v8 5/5] Provide a building option for review purpose.

when DEBUG_PRE_DETOAST_DATUM is defined, which attribute is prepared
detoast in which plan node is logged via INFO.
---
 src/backend/executor/execExpr.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index 779fcfaab1..45c2c625b2 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -949,6 +949,14 @@ ExecInitExprRec(Expr *node, ExprState *state,
 											  ((JoinState *) state->parent)->inner_pre_detoast_attrs))
 							{
 								scratch.opcode = EEOP_INNER_VAR_TOAST;
+#ifdef DEBUG_PRE_DETOAST_DATUM
+								elog(INFO,
+									 "EEOP_INNER_VAR_TOAST: flags = %d costs=%.2f..%.2f, attnum: %d",
+									 state->flags,
+									 plan->startup_cost,
+									 plan->total_cost,
+									 attnum);
+#endif
 							}
 							else
 							{
@@ -961,6 +969,14 @@ ExecInitExprRec(Expr *node, ExprState *state,
 											  ((JoinState *) state->parent)->outer_pre_detoast_attrs))
 							{
 								scratch.opcode = EEOP_OUTER_VAR_TOAST;
+#ifdef DEBUG_PRE_DETOAST_DATUM
+									elog(INFO,
+										 "EEOP_OUTER_VAR_TOAST: flags = %u costs=%.2f..%.2f, attnum: %d",
+										 state->flags,
+										 plan->startup_cost,
+										 plan->total_cost,
+										 attnum);
+#endif
 							}
 							else
 								scratch.opcode = EEOP_OUTER_VAR;
@@ -974,6 +990,15 @@ ExecInitExprRec(Expr *node, ExprState *state,
 																	((ScanState *) state->parent)->scan_pre_detoast_attrs))
 							{
 								scratch.opcode = EEOP_SCAN_VAR_TOAST;
+#ifdef DEBUG_PRE_DETOAST_DATUM
+									elog(INFO,
+										 "EEOP_SCAN_VAR_TOAST: flags = %u costs=%.2f..%.2f, scanId: %d, attnum: %d",
+										 state->flags,
+										 plan->startup_cost,
+										 plan->total_cost,
+										 ((Scan *) plan)->scanrelid,
+										 attnum);
+#endif
 							}
 							else
 								scratch.opcode = EEOP_SCAN_VAR;
-- 
2.34.1

