A Postgres function is a set of SQL or procedural commands saved in the database. It can be called to perform tasks like calculations or data changes, making work easier and reusable.
Click to reveal answer
beginner
How do you create a simple Postgres function that adds two numbers?
You use the CREATE FUNCTION statement with input parameters and a RETURN type. For example: CREATE FUNCTION add_numbers(a integer, b integer) RETURNS integer AS $$ BEGIN RETURN a + b; END; $$ LANGUAGE plpgsql;
Click to reveal answer
beginner
What does the LANGUAGE plpgsql mean in a Postgres function?
It tells Postgres that the function uses the PL/pgSQL language, which allows procedural programming like variables and control flow inside the function.
Click to reveal answer
beginner
Why use functions in Postgres instead of repeating SQL queries?
Functions save time by reusing code, reduce mistakes, and keep your database organized. They also can improve performance by running complex logic inside the database.
Click to reveal answer
intermediate
What is the difference between a function and a stored procedure in Postgres?
Functions return a value and can be used in queries. Stored procedures do not return values and are called to perform actions like transactions. Postgres added procedures in version 11.
Click to reveal answer
Which keyword starts the creation of a Postgres function?
ACREATE FUNCTION
BMAKE FUNCTION
CDEFINE FUNCTION
DSTART FUNCTION
✗ Incorrect
The correct syntax to create a function in Postgres begins with CREATE FUNCTION.
What does a Postgres function always need to specify?
AOnly return type
BOnly input parameters
CInput parameters and return type
DNo parameters or return type
✗ Incorrect
Functions must define input parameters and what type of value they return.
Which language is commonly used inside Postgres functions for procedural logic?
Ajavascript
Bplpgsql
Cpython
Dsqlplus
✗ Incorrect
PL/pgSQL is the procedural language designed for Postgres functions.
What is a key benefit of using Postgres functions?
AReplacing tables
BMaking the database slower
CAvoiding all SQL queries
DReusing code and improving performance
✗ Incorrect
Functions help reuse code and can improve database performance.
When were stored procedures introduced in Postgres?
AVersion 11
BVersion 9
CVersion 8
DVersion 10
✗ Incorrect
Stored procedures were added in Postgres version 11.
Explain what a Postgres function is and why it is useful.
Think about how a recipe helps you cook the same dish easily.
You got /4 concepts.
Describe the basic steps to create a Postgres function that returns the sum of two numbers.
Focus on the parts needed to add two numbers and return the result.
You got /5 concepts.
Practice
(1/5)
1. What is the main purpose of a Postgres function in Supabase?
easy
A. To store reusable code inside the database
B. To create user interface elements
C. To manage server hardware
D. To backup the entire database automatically
Solution
Step 1: Understand what Postgres functions do
Postgres functions hold code that can be run repeatedly inside the database.
Step 2: Compare options with this purpose
Only To store reusable code inside the database matches this description; others relate to UI, hardware, or backups, which are unrelated.
Final Answer:
To store reusable code inside the database -> Option A
Quick Check:
Postgres functions = reusable database code [OK]
Hint: Functions store code to reuse inside the database [OK]
Common Mistakes:
Confusing functions with UI components
Thinking functions manage hardware
Assuming functions handle backups automatically
2. Which of the following is the correct way to start defining a simple Postgres function?
easy
A. FUNCTION CREATE function_name() RETURNS type AS BEGIN ... END;
B. MAKE FUNCTION function_name RETURNS type { ... }
C. CREATE FUNCTION function_name() RETURNS type AS $$ BEGIN ... END; $$ LANGUAGE plpgsql;
D. DEFINE FUNCTION function_name() RETURNS type BEGIN ... END;
Solution
Step 1: Recall Postgres function syntax
The correct syntax starts with CREATE FUNCTION, includes RETURNS, and uses $$ to wrap the body.
Step 2: Match options to syntax
Only CREATE FUNCTION function_name() RETURNS type AS $$ BEGIN ... END; $$ LANGUAGE plpgsql; matches the exact syntax; others use incorrect keywords or order.
Final Answer:
CREATE FUNCTION function_name() RETURNS type AS $$ BEGIN ... END; $$ LANGUAGE plpgsql; -> Option C
Hint: Postgres functions start with CREATE FUNCTION and use $$ for body [OK]
Common Mistakes:
Using MAKE or DEFINE instead of CREATE
Omitting LANGUAGE plpgsql
Not wrapping function body with $$
3. Given this function, what will SELECT add_two_numbers(3, 4); return?
CREATE FUNCTION add_two_numbers(a integer, b integer) RETURNS integer AS $$ BEGIN RETURN a + b; END; $$ LANGUAGE plpgsql;
medium
A. NULL
B. 34
C. Error: function not found
D. 7
Solution
Step 1: Understand function behavior
The function adds two integers a and b and returns their sum.
Step 2: Calculate the result for inputs 3 and 4
3 + 4 equals 7, so the function returns 7.
Final Answer:
7 -> Option D
Quick Check:
3 + 4 = 7 [OK]
Hint: Function adds inputs; 3 + 4 = 7 [OK]
Common Mistakes:
Concatenating numbers as strings (34)
Assuming function is missing or returns NULL
Confusing syntax errors with output
4. Identify the error in this Postgres function:
CREATE FUNCTION multiply_by_two(x integer) RETURNS integer AS $$ BEGIN RETURN x * 2 END; $$ LANGUAGE plpgsql;
medium
A. Missing semicolon after RETURN statement
B. Incorrect function name
C. Wrong language specified
D. No error, function is correct
Solution
Step 1: Check function syntax carefully
In PL/pgSQL, statements inside BEGIN...END must end with semicolons.
Step 2: Locate missing semicolon
The RETURN statement lacks a semicolon at the end, causing a syntax error.
Final Answer:
Missing semicolon after RETURN statement -> Option A
Quick Check:
Statements inside BEGIN...END need semicolons [OK]
Hint: Check for missing semicolons inside BEGIN...END [OK]
Common Mistakes:
Forgetting semicolon after RETURN
Assuming function name or language is wrong
Thinking function is correct without semicolon
5. You want to create a Postgres function that returns the length of a text input only if it is not empty; otherwise, it returns NULL. Which function definition correctly implements this?
hard
A. CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN RETURN length(input); END; $$ LANGUAGE plpgsql;
B. CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input = '' THEN RETURN NULL; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql;
C. CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input IS NULL THEN RETURN 0; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql;
D. CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input = NULL THEN RETURN NULL; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql;
Solution
Step 1: Understand the condition to check empty string
The function must check if input equals empty string ('') and return NULL in that case.
Step 2: Evaluate each option's condition
CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input = '' THEN RETURN NULL; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql; correctly checks input = '' and returns NULL; CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN RETURN length(input); END; $$ LANGUAGE plpgsql; always returns length; CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input IS NULL THEN RETURN 0; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql; checks NULL instead of empty; CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input = NULL THEN RETURN NULL; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql; uses incorrect NULL comparison.
Final Answer:
CREATE FUNCTION text_length_if_not_empty(input text) RETURNS integer AS $$ BEGIN IF input = '' THEN RETURN NULL; ELSE RETURN length(input); END IF; END; $$ LANGUAGE plpgsql; -> Option B
Quick Check:
Check empty string with = '' and return NULL [OK]
Hint: Use IF input = '' THEN RETURN NULL; ELSE RETURN length(input); [OK]
Common Mistakes:
Using input = NULL instead of IS NULL
Not checking for empty string
Returning 0 instead of NULL for empty input
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.