[GENERAL] 'value too long' and before insert/update trigger

Поиск
Список
Период
Сортировка
От Kevin Golding
Тема [GENERAL] 'value too long' and before insert/update trigger
Дата
Msg-id 2dc45bd0b26c45afa16463f2618d5460@AXS-Mail.AXS.local
обсуждение исходный текст
Ответы Re: [GENERAL] 'value too long' and before insert/update trigger  ("Charles Clavadetscher" <clavadetscher@swisspug.org>)
Re: [GENERAL] 'value too long' and before insert/update trigger  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: [GENERAL] 'value too long' and before insert/update trigger  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-general
Hi all
I'm currently migrating a legacy Informix 4gl application to run on PostgreSQL (v9.5.8)

There are errors occurring because sometimes the application tries to insert/update values longer than the definition
ofthe database column. 
The error message is eg. "value too long for type character(20)".

The behaviour under Informix is to silently truncate the saved value, but with PostgreSQL it crashes our application
program.Obviously the short answer is to modify the application so that it does not attempt to save values that are too
long,but with 1000+ programs and approx. 8000 insert/update statements to review this will take a lot of time. 

I was hoping to emulate the Informix behaviour by creating triggers to run before each insert/update that would check
thelength of the values being saved and truncate if too long. However I'm still getting the error messages. Presumably
thelength validation is being done before the trigger is run. Is there some way this could be changed so the trigger
happensfirst? 

I've seen examples that involve changing the char type columns to text, but this changes the semantics of string
comparisonswith regard to trailing spaces, and I'm concerned that this might cause subtle and hard to find problems
withinthe application. 

Thanks
Kevin


В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [GENERAL] DROP [TEMP] TABLE syntax, as reason why not?
Следующее
От: "Charles Clavadetscher"
Дата:
Сообщение: Re: [GENERAL] 'value too long' and before insert/update trigger