mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Add compute_query_id = regress
"regress" is a new mode added to compute_query_id aimed at facilitating regression testing when a module computing query IDs is loaded into the backend, like pg_stat_statements. It works the same way as "auto", meaning that query IDs are computed if a module enables it, except that query IDs are hidden in EXPLAIN outputs to ensure regression output stability. Like any GUCs of the kind (force_parallel_mode, etc.), this new configuration can be added to an instance's postgresql.conf, or just passed down with PGOPTIONS at command level. compute_query_id uses an enum for its set of option values, meaning that this addition ensures ABI compatibility. Using this new configuration mode allows installcheck-world to pass when running the tests on an instance with pg_stat_statements enabled, stabilizing the test output while checking the paths doing query ID computations. Reported-by: Anton Melnikov Reviewed-by: Julien Rouhaud Discussion: https://postgr.es/m/1634283396.372373993@f75.i.mail.ru Discussion: https://postgr.es/m/YgHlxgc/OimuPYhH@paquier.xyz Backpatch-through: 14
This commit is contained in:
		@@ -604,7 +604,13 @@ ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into, ExplainState *es,
 | 
			
		||||
	/* Create textual dump of plan tree */
 | 
			
		||||
	ExplainPrintPlan(es, queryDesc);
 | 
			
		||||
 | 
			
		||||
	if (es->verbose && plannedstmt->queryId != UINT64CONST(0))
 | 
			
		||||
	/*
 | 
			
		||||
	 * COMPUTE_QUERY_ID_REGRESS means COMPUTE_QUERY_ID_AUTO, but we don't show
 | 
			
		||||
	 * the queryid in any of the EXPLAIN plans to keep stable the results
 | 
			
		||||
	 * generated by regression test suites.
 | 
			
		||||
	 */
 | 
			
		||||
	if (es->verbose && plannedstmt->queryId != UINT64CONST(0) &&
 | 
			
		||||
		compute_query_id != COMPUTE_QUERY_ID_REGRESS)
 | 
			
		||||
	{
 | 
			
		||||
		/*
 | 
			
		||||
		 * Output the queryid as an int64 rather than a uint64 so we match
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user