Database / Supabase Intermediate to Advanced Interview Questions
How does Supabase expose custom Postgres functions as callable RPC endpoints?
Any function defined in your Postgres schema is automatically exposed by PostgREST at /rest/v1/rpc/<function_name>, callable via POST with the function's arguments as a JSON body — no separate route registration is required.
create function calculate_discount(price numeric, percent numeric) returns numeric as $$ select price - (price * percent / 100); $$ language sql;
From the client, this becomes supabase.rpc('calculate_discount', { price: 100, percent: 10 }). RPC is the natural escape hatch when a query needs logic that a plain table filter can't express — conditional aggregation, multi-step calculations, or anything that should run as one atomic unit inside Postgres rather than round-tripping data to the client and back.
More Related questions...