How to write an overloaded set of hello_world functions in PostgreSQL PL/pgSQL. The following code lets you write and test overloaded functions and the concepts of null, zero-length string, and string values.
-- Drop the overloaded functions.
DROP FUNCTION IF EXISTS hello_world(), hello_world(whom VARCHAR);
-- Create the function.
CREATE FUNCTION hello_world()
RETURNS text AS
$$
DECLARE
output VARCHAR(20);
BEGIN
/* Query the string into a local variable. */
SELECT 'Hello World!' INTO output;
/* Return the output text variable. */
RETURN output;
END
$$ LANGUAGE plpgsql;
-- Create the function.
CREATE FUNCTION hello_world(whom VARCHAR)
RETURNS text AS
$$
DECLARE
output VARCHAR(20);
BEGIN
/* Query the string into a local variable. */
IF whom IS NULL OR LENGTH(whom) = 0 THEN
SELECT 'Hello World!' INTO output;
ELSE
SELECT CONCAT('Hello ', whom, '!') INTO output;
END IF;
/* Return the output text variable. */
RETURN output;
END
$$ LANGUAGE plpgsql;
-- Call the function.
SELECT hello_world();
SELECT hello_world(Null) AS output;
SELECT hello_world('') AS output;
SELECT hello_world('Harry') AS output;
It should print:
output
--------------
Hello World!
(1 row)
output
--------------
Hello World!
(1 row)
output
--------------
Hello World!
(1 row)
output
--------------
Hello Harry!
(1 row)
As always, I hope this helps those looking for the basics and how to solve problems.