Skip to content

Commit 6b9006b

Browse files
authored
Merge pull request #432 from supabase/fix/filter-trigger-funcs
do not expose trigger functions in GQL
2 parents aeb1801 + 3b38221 commit 6b9006b

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed

src/sql_types.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ impl Function {
135135
if let Some(return_type) = types.get(&self.type_oid) {
136136
return_type.category != TypeCategory::Pseudo
137137
&& return_type.name != "record"
138+
&& return_type.name != "trigger"
139+
&& return_type.name != "event_trigger"
138140
&& !self.type_name.ends_with("[]")
139141
} else {
140142
false

test/expected/function_calls.out

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,6 +1954,12 @@ begin;
19541954
)
19551955
returns smallint language sql immutable
19561956
as $$ select 0; $$;
1957+
create function returns_trigger()
1958+
returns trigger language plpgsql immutable
1959+
as $$ begin return null; end; $$;
1960+
create function returns_event_trigger()
1961+
returns event_trigger language plpgsql immutable
1962+
as $$ begin end; $$;
19571963
select jsonb_pretty(
19581964
graphql.resolve($$
19591965
query IntrospectionQuery {
@@ -2155,4 +2161,38 @@ begin;
21552161
}
21562162
(1 row)
21572163

2164+
select jsonb_pretty(graphql.resolve($$
2165+
query {
2166+
returnsTrigger
2167+
}
2168+
$$));
2169+
jsonb_pretty
2170+
-------------------------------------------------------------------------
2171+
{ +
2172+
"data": null, +
2173+
"errors": [ +
2174+
{ +
2175+
"message": "Unknown field \"returnsTrigger\" on type Query"+
2176+
} +
2177+
] +
2178+
}
2179+
(1 row)
2180+
2181+
select jsonb_pretty(graphql.resolve($$
2182+
query {
2183+
returnsEventTrigger
2184+
}
2185+
$$));
2186+
jsonb_pretty
2187+
------------------------------------------------------------------------------
2188+
{ +
2189+
"data": null, +
2190+
"errors": [ +
2191+
{ +
2192+
"message": "Unknown field \"returnsEventTrigger\" on type Query"+
2193+
} +
2194+
] +
2195+
}
2196+
(1 row)
2197+
21582198
rollback;

test/sql/function_calls.sql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,14 @@ begin;
701701
returns smallint language sql immutable
702702
as $$ select 0; $$;
703703

704+
create function returns_trigger()
705+
returns trigger language plpgsql immutable
706+
as $$ begin return null; end; $$;
707+
708+
create function returns_event_trigger()
709+
returns event_trigger language plpgsql immutable
710+
as $$ begin end; $$;
711+
704712
select jsonb_pretty(
705713
graphql.resolve($$
706714
query IntrospectionQuery {
@@ -762,4 +770,16 @@ begin;
762770
concatText(a: "hello ")
763771
}
764772
$$));
773+
774+
select jsonb_pretty(graphql.resolve($$
775+
query {
776+
returnsTrigger
777+
}
778+
$$));
779+
780+
select jsonb_pretty(graphql.resolve($$
781+
query {
782+
returnsEventTrigger
783+
}
784+
$$));
765785
rollback;

0 commit comments

Comments
 (0)