Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement
| От | Philip Alger | 
|---|---|
| Тема | Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement | 
| Дата | |
| Msg-id | CAPXBC8J-VU86hkh+1_x-s933CtSfsyoBf3fgWuvNrQ+AErjY=g@mail.gmail.com обсуждение исходный текст  | 
		
| Ответ на | Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement (Marcos Pegoraro <marcos@f10.com.br>) | 
| Список | pgsql-hackers | 
Hi Marcos, 
In a multi tenant world this feature will be cool for clone or sync ddl of two schemas. So, if I’m creating a new schema the way you did works but if both exists and I want to update some ddls of a schema, sometimes I have to DROP and CREATE or returned command should have CREATE OR REPLACE, depending on what ddl you are doing.
If you try to create a trigger but it already exists, you’ll get an exception, so you can emit a DROP IF EXISTS before CREATE of that trigger. For this that param drop_first would be.I know you are doing only trigger ddl rigth now but I think we would have this kind of functions for tables, constraints, triggers, domains and so on, then all of them should work the same way, and for this a drop_first or if_exists would be good.
Thanks for the feedback.
That makes sense, and you're right, for the 'multi-tenant sync' use case you're describing, just having the 
CREATE statement will cause an 'object exists' error. The way I've scoped this particular function is more general. That drop_first feature is great for a sync script, but the core idea here is just to retrieve the DDL text. It's up to the developer using it to decide how to implement it (like adding a DROP first).Best, 
Phil Alger
В списке pgsql-hackers по дате отправления: