mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors (unless a superuser runs a RESET ALL variant). This is problematic for cases such as an extension library upgrade that removes a GUC. To fix, simply make sure the relevant code paths explicitly allow it. Note that we require superuser or privileges on the parameter to reset it. This is perhaps a bit more restrictive than is necessary, but it's not clear whether further relaxing the requirements is safe. Oversight in commit88103567cb. The ALTER SYSTEM fix is dependent on commit2d870b4aef, which first appeared in v17. Unfortunately, back-patching that commit would introduce ABI breakage, and while that breakage seems unlikely to bother anyone, it doesn't seem worth the risk. Hence, the ALTER SYSTEM part of this commit is omitted on v15 and v16. Reported-by: Mert Alev <mert@futo.org> Reviewed-by: Laurenz Albe <laurenz.albe@cybertec.at> Discussion: https://postgr.es/m/18964-ba09dea8c98fccd6%40postgresql.org Backpatch-through: 15
		
			
				
	
	
		
			34 lines
		
	
	
		
			701 B
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			701 B
		
	
	
	
		
			Meson
		
	
	
	
	
	
| # Copyright (c) 2022-2024, PostgreSQL Global Development Group
 | |
| 
 | |
| auto_explain_sources = files(
 | |
|   'auto_explain.c',
 | |
| )
 | |
| 
 | |
| if host_system == 'windows'
 | |
|   auto_explain_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
 | |
|     '--NAME', 'auto_explain',
 | |
|     '--FILEDESC', 'auto_explain - logging facility for execution plans',])
 | |
| endif
 | |
| 
 | |
| auto_explain = shared_module('auto_explain',
 | |
|   auto_explain_sources,
 | |
|   kwargs: contrib_mod_args,
 | |
| )
 | |
| contrib_targets += auto_explain
 | |
| 
 | |
| tests += {
 | |
|   'name': 'auto_explain',
 | |
|   'sd': meson.current_source_dir(),
 | |
|   'bd': meson.current_build_dir(),
 | |
|   'regress': {
 | |
|     'sql': [
 | |
|       'alter_reset',
 | |
|     ],
 | |
|   },
 | |
|   'tap': {
 | |
|     'tests': [
 | |
|       't/001_auto_explain.pl',
 | |
|     ],
 | |
|   },
 | |
| }
 |