In c++, whenever we encounter an unexpected parameters, here is what we usually did : bool fun(int i) { if (i < 0) { return false; } } void fun(int i) { if (i < 0) { throw std::exception("Invalid parameter"); } } void fun(int i) { assert (i >= 0); } How about stored procedure? Now, I have the following stored procedure : CREATE OR REPLACE FUNCTION insert_unit(text[], text[]) RETURNS unit AS $BODY$DECLARE _measurement_types ALIAS FOR $1; _measurement_units ALIAS FOR $2; _unit unit; BEGIN IF array_upper(_measurement_values, 1) != array_upper(_measurement_units, 1) THEN RAISE NOTICE 'What I should do here to return early???'; END IF; May I know what is the good practice to handle invalid parameters? I am using libpq to interface with PostgreSQL. Thanks and Regards Yan Cheng CHEOK -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general