Help with "empty()"

Started by Alan Waynealmost 24 years ago3 messagesgeneral
Jump to latest
#1Alan Wayne
alanjwayne@yahoo.com

Hi!

In doing table validation, I have often used the
foxpro function "empty()" which returns .t. if the
enclosed entity is empty. i.e., if boolean .f. then
empty = .t.. If number 0, then empty = .t., and if a
blank string, then empty = .t.

I didn't see anyother way to mimic this behavior then
what I wrote below, is there a better way????

Please help, suggestions are appreciated!
Cheers,
ajw

CREATE FUNCTION zzipcode_validate_fields() RETURNS
opaque AS '
BEGIN
IF NEW.izipcode ISNULL THEN
RAISE EXCEPTION ''zipcode is null.'' ;
ELSE
IF char_length( trim(both from NEW.izipcode)) < 9
THEN
RAISE EXCEPTION ''zipcode less-then 9-digits.'' ;
END IF;
END IF;

IF NEW.cstate ISNULL THEN
RAISE EXCEPTION ''state is null.'' ;
ELSE
IF char_length( trim(both from NEW.cstate))=0 THEN
RAISE EXCEPTION ''state is empty string.'';
END IF;
END IF;

IF NEW.ccity ISNULL THEN
RAISE EXCEPTION ''city is null.'';
ELSE
IF char_length( trim(both from NEW.ccity)) = 0
THEN
RAISE EXCEPTION ''city is empty string.'' ;
END IF;
END IF;

NEW.cstate := upper(NEW.cstate);
NEW.ccity := upper(NEW.ccity);
RETURN NEW;
END;
'LANGUAGE 'plpgsql';

CREATE TRIGGER zzipcode_validate BEFORE INSERT OR
UPDATE ON zzipcode
FOR EACH ROW EXECUTE PROCEDURE
zzipcode_validate_fields();

__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com

#2Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Alan Wayne (#1)
Re: Help with "empty()"

In doing table validation, I have often used the
foxpro function "empty()" which returns .t. if the
enclosed entity is empty. i.e., if boolean .f. then
empty = .t.. If number 0, then empty = .t., and if a
blank string, then empty = .t.

I didn't see anyother way to mimic this behavior then
what I wrote below, is there a better way????

I'd have suggested writing empty functions for various
types, empty(boolean), empty(int4), empty(float8),
empty(text) and using those. You could probably even
just do them as sql functions.

#3Joel Burton
joel@joelburton.com
In reply to: Stephan Szabo (#2)
Re: Help with "empty()"

-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org]On Behalf Of Stephan Szabo
Sent: Friday, May 24, 2002 12:15 AM
To: Alan Wayne
Cc: Jean-Michel POURE; pgsql-general
Subject: Re: [GENERAL] Help with "empty()"

I'd have suggested writing empty functions for various
types, empty(boolean), empty(int4), empty(float8),
empty(text) and using those. You could probably even
just do them as sql functions.

Yep. Though, since they're compiled, plpgsql functions are faster than SQL
functions. Don't forget to mark them as isCachable, too.

- J.

Joel BURTON | joel@joelburton.com | joelburton.com | aim: wjoelburton
Knowledge Management & Technology Consultant