I am new to the list and somewhat new to PostgreSQL... so, if my
question seems mundane or trivial I apologize. I have a plpgsql function
that performs multiple inserts and updates on a variety of tables. In
one particular instance the function tests an array for null. If the
array is not null the record is inserted. I can get the array to test
true to null but it fails when reversed.
*** A sample and simple version of what I am trying to do ***
CREATE FUNCTION sb_event_insert (_TEXT)
RETURNS bool
AS 'DECLARE
argv_vector ALIAS FOR $1;
evnt_seq INTEGER;
BEGIN
IF argv_vector = \'{}\'
THEN
evnt_seq := nextval(\'event_sequence\');
INSERT INTO argv VALUES (evnt_seq, argv_vector);
END IF;
END;'
LANGUAGE 'plpgsql';
This evaluates successfully and without errors... but, obviously I am
testing for not null. It seems inefficient to use an IF - THEN - ELSE
statement here. So, by reversing the evaluation
IF argv_vector != \'{}\'
the function when executed fails with the following error:
SELECT sb_event_insert ('{}');
ERROR: Unable to identify an operator '<>' for types '_text' and
'unknown'. You will have to retype this query using an explicit cast.
Regards, Michael Dunn