@@ -217,3 +217,50 @@ test('multi event', async () => {
217217 )
218218 await pgMeta . triggers . remove ( res . data ! . id )
219219} )
220+
221+ test ( 'triggers with the same name on different schemas' , async ( ) => {
222+ await pgMeta . query ( `
223+ create function tr_f() returns trigger language plpgsql as 'begin end';
224+ create schema s1; create table s1.t(); create trigger tr before insert on s1.t execute function tr_f();
225+ create schema s2; create table s2.t(); create trigger tr before insert on s2.t execute function tr_f();
226+ ` )
227+
228+ const res = await pgMeta . triggers . list ( )
229+ const triggers = res . data ?. map ( ( { id, table_id, ...trigger } ) => trigger )
230+ expect ( triggers ) . toMatchInlineSnapshot ( `
231+ [
232+ {
233+ "activation": "BEFORE",
234+ "condition": null,
235+ "enabled_mode": "ORIGIN",
236+ "events": [
237+ "INSERT",
238+ ],
239+ "function_args": [],
240+ "function_name": "tr_f",
241+ "function_schema": "public",
242+ "name": "tr",
243+ "orientation": "STATEMENT",
244+ "schema": "s1",
245+ "table": "t",
246+ },
247+ {
248+ "activation": "BEFORE",
249+ "condition": null,
250+ "enabled_mode": "ORIGIN",
251+ "events": [
252+ "INSERT",
253+ ],
254+ "function_args": [],
255+ "function_name": "tr_f",
256+ "function_schema": "public",
257+ "name": "tr",
258+ "orientation": "STATEMENT",
259+ "schema": "s2",
260+ "table": "t",
261+ },
262+ ]
263+ ` )
264+
265+ await pgMeta . query ( 'drop schema s1 cascade; drop schema s2 cascade;' )
266+ } )
0 commit comments