| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> |
| Cc: | Sid <sid(dot)the(dot)technician(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Problem with triggers |
| Date: | 2010-06-16 03:14:20 |
| Message-ID: | 24930.1276658060@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> writes:
> On 06/15/2010 02:01 PM, Sid wrote:
>> I am writing trigger function for validating values inserted into table. The
>> goal is to print user friendly messages when inserted value is wrong.
>> My question is: why do I get information about too long value before trigger
>> fires?
> The database is beating you to the validation.
People try this every few months :-(, but it's basically a dead-end idea.
A large majority of the things you might want to report an error for are
going to be rejected by the datatype input functions for the column
datatypes --- for example, you're not going to be able to "print a user
friendly message" on a bad timestamp, because that will be noticed long
before any trigger gets to fire.
You can either decide that the built-in error messages aren't so awful
after all, or do your data validation on the client side.
Or I guess you could lobotomize the database completely by making all
your fields be unlimited-length varchar so that there's no interesting
checking to be done. But you really, really don't want to go there.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2010-06-16 03:31:09 | Re: Problem serving one-click installer to Syria |
| Previous Message | Bryan Montgomery | 2010-06-16 02:03:42 | Re: GSS Authentication |