I have wriiten following simple function in postgresql CREATE OR REPLACE FUNCTION "MySchema".add_user(p_name character varying, p_email1 character varying, p_email2 character varying) RETURNS bigint AS $BODY$ DECLARE userId bigint; BEGIN INSERT INTO "MySchema"."User"("Name" ,"EMail1" , "EMail2") VALUES ($1 , $2, $3) ;
Select CURRVAL('"MySchema".user_seq_userid') into userId; return userid; END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT Function works absoolutely fine if I provide values for all three parameters. Record gets inserted too. But if I pass NULL for say last parameter, using SELECT "MySchema".add_user('A' , 'A', NULL) function does not do anything and return zero. No error is shown. But record is not inserted in table. All columns in table can have NULL value. **************** CAUTION - Disclaimer ***************** This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system. ***INFOSYS******** End of Disclaimer ********INFOSYS***