From 75e03c2042d96a8df0586f27fe141523059d5c85 Mon Sep 17 00:00:00 2001 From: "yizhi.fzh" 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