mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Add missing quote_identifier calls for CREATE TRIGGER ... REFERENCING.
Mixed-case names for transition tables weren't dumped correctly.
Oversight in commit 8c48375e5, per bug #15440 from Karl Czajkowski.
In passing, I couldn't resist a bit of code beautification.
Back-patch to v10 where this was introduced.
Discussion: https://postgr.es/m/15440-02d1468e94d63d76@postgresql.org
			
			
This commit is contained in:
		@@ -954,22 +954,24 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
 | 
			
		||||
	value = fastgetattr(ht_trig, Anum_pg_trigger_tgoldtable,
 | 
			
		||||
						tgrel->rd_att, &isnull);
 | 
			
		||||
	if (!isnull)
 | 
			
		||||
		tgoldtable = NameStr(*((NameData *) DatumGetPointer(value)));
 | 
			
		||||
		tgoldtable = NameStr(*DatumGetName(value));
 | 
			
		||||
	else
 | 
			
		||||
		tgoldtable = NULL;
 | 
			
		||||
	value = fastgetattr(ht_trig, Anum_pg_trigger_tgnewtable,
 | 
			
		||||
						tgrel->rd_att, &isnull);
 | 
			
		||||
	if (!isnull)
 | 
			
		||||
		tgnewtable = NameStr(*((NameData *) DatumGetPointer(value)));
 | 
			
		||||
		tgnewtable = NameStr(*DatumGetName(value));
 | 
			
		||||
	else
 | 
			
		||||
		tgnewtable = NULL;
 | 
			
		||||
	if (tgoldtable != NULL || tgnewtable != NULL)
 | 
			
		||||
	{
 | 
			
		||||
		appendStringInfoString(&buf, "REFERENCING ");
 | 
			
		||||
		if (tgoldtable != NULL)
 | 
			
		||||
			appendStringInfo(&buf, "OLD TABLE AS %s ", tgoldtable);
 | 
			
		||||
			appendStringInfo(&buf, "OLD TABLE AS %s ",
 | 
			
		||||
							 quote_identifier(tgoldtable));
 | 
			
		||||
		if (tgnewtable != NULL)
 | 
			
		||||
			appendStringInfo(&buf, "NEW TABLE AS %s ", tgnewtable);
 | 
			
		||||
			appendStringInfo(&buf, "NEW TABLE AS %s ",
 | 
			
		||||
							 quote_identifier(tgnewtable));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (TRIGGER_FOR_ROW(trigrec->tgtype))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user