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).