public inbox for [email protected]  
help / color / mirror / Atom feed
From: Lev Nikolaev <[email protected]>
To: [email protected] <[email protected]>
Subject: Re: [PATCH] analyze: move elevel calculation into do_analyze_rel()
Date: Tue, 31 Mar 2026 20:56:09 +0300
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>

Hi hackers,

I reworked the patch slightly.

Since do_analyze_rel() is static, removing the extra elevel argument is
local to analyze.c only. No behavioral change is intended.

--

Best regards,

Lev Nikolaev,

Tantor Labs LLC,

https://tantorlabs.com/



30.03.2026 16:03, Лев Николаев пишет:
>
> Hi hackers,
>
> While reading analyze.c in current master, I noticed a small cleanup 
> opportunity in the ANALYZE code path.
>
> Currently, analyze_rel() computes elevel from params.options, but does 
> not use it directly. It only passes the value down to 
> do_analyze_rel(). At the same time, do_analyze_rel() already receives 
> params and derives verbose from params.options for its own purposes.
>
> The attached patch moves the elevel calculation into do_analyze_rel() 
> and removes the extra elevel argument from its declaration, 
> definition, and call sites.
>
> No behavioral change is intended here. The logging level selection 
> remains the same; the calculation is just moved closer to the actual 
> use sites.
>
> Comments and feedback would be appreciated.
>
> --
>
> Best regards,
>
> Lev Nikolaev,
>
> Tantor Labs LLC,
>
> https://tantorlabs.com/
>

Attachments:

  [text/x-patch] 0001-analyze-move-elevel-calculation-into-do_analyze_rel.patch (3.1K, 3-0001-analyze-move-elevel-calculation-into-do_analyze_rel.patch)
  download | inline diff:
From 5c1f08a6f7c24aa26b96fa6f96bc53149621c386 Mon Sep 17 00:00:00 2001
From: Lev Nikolaev <[email protected]>
Date: Mon, 30 Mar 2026 11:15:47 +0000
Subject: [PATCH] analyze: move elevel calculation into do_analyze_rel()

analyze_rel() computes elevel from params.options, but does not use it
directly and only passes it to do_analyze_rel().

Since do_analyze_rel() already receives params and derives verbose from
params.options, compute elevel there instead and remove the extra
function argument.

No behavioral change intended.
---
 src/backend/commands/analyze.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index eeed91be266..3c565b83475 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -78,7 +78,7 @@ static BufferAccessStrategy vac_strategy;
 static void do_analyze_rel(Relation onerel,
 						   const VacuumParams params, List *va_cols,
 						   AcquireSampleRowsFunc acquirefunc, BlockNumber relpages,
-						   bool inh, bool in_outer_xact, int elevel);
+						   bool inh, bool in_outer_xact);
 static void compute_index_stats(Relation onerel, double totalrows,
 								AnlIndexData *indexdata, int nindexes,
 								HeapTuple *rows, int numrows,
@@ -111,16 +111,9 @@ analyze_rel(Oid relid, RangeVar *relation,
 			BufferAccessStrategy bstrategy)
 {
 	Relation	onerel;
-	int			elevel;
 	AcquireSampleRowsFunc acquirefunc = NULL;
 	BlockNumber relpages = 0;
 
-	/* Select logging level */
-	if (params.options & VACOPT_VERBOSE)
-		elevel = INFO;
-	else
-		elevel = DEBUG2;
-
 	/* Set up static variables */
 	vac_strategy = bstrategy;
 
@@ -253,14 +246,14 @@ analyze_rel(Oid relid, RangeVar *relation,
 	 */
 	if (onerel->rd_rel->relkind != RELKIND_PARTITIONED_TABLE)
 		do_analyze_rel(onerel, params, va_cols, acquirefunc,
-					   relpages, false, in_outer_xact, elevel);
+					   relpages, false, in_outer_xact);
 
 	/*
 	 * If there are child tables, do recursive ANALYZE.
 	 */
 	if (onerel->rd_rel->relhassubclass)
 		do_analyze_rel(onerel, params, va_cols, acquirefunc, relpages,
-					   true, in_outer_xact, elevel);
+					   true, in_outer_xact);
 
 	/*
 	 * Close source relation now, but keep lock so that no one deletes it
@@ -283,15 +276,15 @@ analyze_rel(Oid relid, RangeVar *relation,
 static void
 do_analyze_rel(Relation onerel, const VacuumParams params,
 			   List *va_cols, AcquireSampleRowsFunc acquirefunc,
-			   BlockNumber relpages, bool inh, bool in_outer_xact,
-			   int elevel)
+			   BlockNumber relpages, bool inh, bool in_outer_xact)
 {
 	int			attr_cnt,
 				tcnt,
 				i,
 				ind;
 	Relation   *Irel;
-	int			nindexes;
+	int			nindexes,
+				elevel;
 	bool		verbose,
 				instrument,
 				hasindex;
@@ -316,6 +309,13 @@ do_analyze_rel(Relation onerel, const VacuumParams params,
 	PgStat_Counter startwritetime = 0;
 
 	verbose = (params.options & VACOPT_VERBOSE) != 0;
+
+	/* Select logging level */
+	if (verbose)
+		elevel = INFO;
+	else
+		elevel = DEBUG2;
+
 	instrument = (verbose || (AmAutoVacuumWorkerProcess() &&
 							  params.log_analyze_min_duration >= 0));
 	if (inh)
-- 
2.34.1



view thread (3+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: [PATCH] analyze: move elevel calculation into do_analyze_rel()
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox