Bird
Raised Fist0
PostgreSQLquery~10 mins

Why utility functions matter in PostgreSQL - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a simple utility function that returns the square of a number.

PostgreSQL
CREATE FUNCTION square(num integer) RETURNS integer AS $$ BEGIN RETURN num [1] num; END; $$ LANGUAGE plpgsql;
Drag options to blanks, or click blank then click option'
A+
B*
C-
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using addition instead of multiplication.
Using division or subtraction which do not calculate squares.
2fill in blank
medium

Complete the code to call the utility function 'square' for the number 5.

PostgreSQL
SELECT [1](5);
Drag options to blanks, or click blank then click option'
Apower
Bsqrt
Csquare
Dabs
Attempts:
3 left
💡 Hint
Common Mistakes
Using built-in functions like power or sqrt instead of the custom function.
Misspelling the function name.
3fill in blank
hard

Fix the error in the function by completing the missing keyword to define the function body.

PostgreSQL
CREATE FUNCTION greet(name text) RETURNS text AS $$ [1] RETURN 'Hello, ' || name || '!'; END; $$ LANGUAGE plpgsql;
Drag options to blanks, or click blank then click option'
AFUNCTION
BDECLARE
CEND
DBEGIN
Attempts:
3 left
💡 Hint
Common Mistakes
Using DECLARE instead of BEGIN to start the body.
Omitting the BEGIN keyword.
4fill in blank
hard

Fill both blanks to create a utility function that returns the length of a given text.

PostgreSQL
CREATE FUNCTION text_length(input_text text) RETURNS integer AS $$ [1] RETURN [2](input_text); END; $$ LANGUAGE plpgsql;
Drag options to blanks, or click blank then click option'
ABEGIN
BLENGTH
CLEN
DDECLARE
Attempts:
3 left
💡 Hint
Common Mistakes
Using DECLARE instead of BEGIN to start the body.
Using LEN which is not a PostgreSQL function.
5fill in blank
hard

Fill all three blanks to create a utility function that returns the uppercase version of a text input.

PostgreSQL
CREATE FUNCTION to_uppercase(text_input text) RETURNS text AS $$ [1] RETURN [2]([3]); END; $$ LANGUAGE plpgsql;
Drag options to blanks, or click blank then click option'
ABEGIN
BUPPER
Ctext_input
DDECLARE
Attempts:
3 left
💡 Hint
Common Mistakes
Starting with DECLARE instead of BEGIN.
Using wrong function names like LOWER or misspelling UPPER.
Using a wrong variable name instead of text_input.

Practice

(1/5)
1. Why are utility functions important in PostgreSQL databases?
easy
A. They help reuse code and simplify queries
B. They slow down query execution significantly
C. They make the database schema more complex
D. They prevent any data from being updated

Solution

  1. Step 1: Understand the purpose of utility functions

    Utility functions are designed to perform common tasks repeatedly without rewriting code.
  2. Step 2: Recognize benefits in query simplification

    By using utility functions, queries become simpler and easier to maintain because logic is centralized.
  3. Final Answer:

    They help reuse code and simplify queries -> Option A
  4. Quick Check:

    Utility functions = reuse and simplify [OK]
Hint: Utility functions = reuse code + simplify queries [OK]
Common Mistakes:
  • Thinking utility functions slow down queries
  • Believing they complicate the database schema
  • Assuming they block data updates
2. Which of the following is the correct syntax to create a simple utility function in PostgreSQL that returns the square of an integer?
easy
A. CREATE FUNCTION square(x INT) RETURNS INT AS 'RETURN x * x;' LANGUAGE sql;
B. CREATE FUNCTION square(x INT) RETURNS INT BEGIN RETURN x * x; END;
C. CREATE FUNCTION square(x INT) RETURNS INT AS $$ BEGIN RETURN x * x; END; $$ LANGUAGE plpgsql;
D. CREATE FUNCTION square(x INT) RETURNS INT AS $$ RETURN x * x; $$ LANGUAGE plpgsql;

Solution

  1. Step 1: Identify correct function creation syntax

    PostgreSQL requires the function body inside $$ with BEGIN and END for plpgsql language.
  2. Step 2: Check for proper RETURNS and LANGUAGE clauses

    CREATE FUNCTION square(x INT) RETURNS INT AS $$ BEGIN RETURN x * x; END; $$ LANGUAGE plpgsql; correctly uses RETURNS INT, BEGIN...END block, and LANGUAGE plpgsql.
  3. Final Answer:

    CREATE FUNCTION square(x INT) RETURNS INT AS $$ BEGIN RETURN x * x; END; $$ LANGUAGE plpgsql; -> Option C
  4. Quick Check:

    Correct plpgsql function syntax = CREATE FUNCTION square(x INT) RETURNS INT AS $$ BEGIN RETURN x * x; END; $$ LANGUAGE plpgsql; [OK]
Hint: Use $$ with BEGIN...END and specify LANGUAGE plpgsql [OK]
Common Mistakes:
  • Omitting BEGIN and END in plpgsql functions
  • Missing LANGUAGE clause
  • Incorrect function body syntax
3. Given the function below, what will be the output of SELECT multiply_by_two(5);?
CREATE FUNCTION multiply_by_two(n INT) RETURNS INT AS $$ BEGIN RETURN n * 2; END; $$ LANGUAGE plpgsql;
medium
A. 5
B. NULL
C. Error: function not found
D. 10

Solution

  1. Step 1: Understand the function logic

    The function takes an integer n and returns n multiplied by 2.
  2. Step 2: Apply the input value 5

    Calling multiply_by_two(5) returns 5 * 2 = 10.
  3. Final Answer:

    10 -> Option D
  4. Quick Check:

    5 * 2 = 10 [OK]
Hint: Multiply input by 2 as function defines [OK]
Common Mistakes:
  • Confusing input and output values
  • Assuming function returns input unchanged
  • Expecting NULL or error without reason
4. You wrote this utility function but get an error when calling it:
CREATE FUNCTION add_five(n INT) RETURNS INT AS $$ BEGIN RETURN n + 5 END; $$ LANGUAGE plpgsql;
What is the likely cause of the error?
medium
A. Wrong data type for parameter
B. Missing semicolon after RETURN statement
C. Incorrect function name
D. LANGUAGE clause is missing

Solution

  1. Step 1: Check function syntax carefully

    In plpgsql, each statement must end with a semicolon; the RETURN line lacks one.
  2. Step 2: Identify missing semicolon causing syntax error

    Adding a semicolon after RETURN n + 5 fixes the error.
  3. Final Answer:

    Missing semicolon after RETURN statement -> Option B
  4. Quick Check:

    Semicolon needed after RETURN [OK]
Hint: Always end statements with semicolon in plpgsql [OK]
Common Mistakes:
  • Forgetting semicolon after RETURN
  • Assuming function name causes error
  • Ignoring LANGUAGE clause presence
5. You want to create a utility function that returns the length of a text string but returns 0 if the input is NULL. Which function definition correctly implements this behavior?
hard
A. CREATE FUNCTION safe_length(s TEXT) RETURNS INT AS $$ BEGIN IF s IS NULL THEN RETURN 0; ELSE RETURN LENGTH(s); END IF; END; $$ LANGUAGE plpgsql;
B. CREATE FUNCTION safe_length(s TEXT) RETURNS INT AS $$ BEGIN RETURN COALESCE(s, 0); END; $$ LANGUAGE plpgsql;
C. CREATE FUNCTION safe_length(s TEXT) RETURNS INT AS $$ RETURN LENGTH(s) OR 0; $$ LANGUAGE sql;
D. CREATE FUNCTION safe_length(s TEXT) RETURNS INT AS $$ BEGIN RETURN LENGTH(s); END; $$ LANGUAGE plpgsql;

Solution

  1. Step 1: Understand requirement for NULL input handling

    The function must return 0 if input is NULL, else return string length.
  2. Step 2: Analyze each option for NULL safety

    CREATE FUNCTION safe_length(s TEXT) RETURNS INT AS $$ BEGIN IF s IS NULL THEN RETURN 0; ELSE RETURN LENGTH(s); END IF; END; $$ LANGUAGE plpgsql; explicitly checks for NULL and returns 0, fulfilling the requirement correctly.
  3. Final Answer:

    CREATE FUNCTION safe_length(s TEXT) RETURNS INT AS $$ BEGIN IF s IS NULL THEN RETURN 0; ELSE RETURN LENGTH(s); END IF; END; $$ LANGUAGE plpgsql; -> Option A
  4. Quick Check:

    Explicit NULL check returns 0 [OK]
Hint: Use IF NULL THEN return 0 ELSE length END IF [OK]
Common Mistakes:
  • Not handling NULL input explicitly
  • Using COALESCE incorrectly with LENGTH
  • Assuming LENGTH returns 0 for NULL
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard