Re: Cast null to int4 upgrading from Version 7.2
От | Andrew Dunstan |
---|---|
Тема | Re: Cast null to int4 upgrading from Version 7.2 |
Дата | |
Msg-id | 455CE1AA.6090403@dunslane.net обсуждение исходный текст |
Ответ на | Cast null to int4 upgrading from Version 7.2 ("Dwight Emmons" <demmons@instantbenefits.com>) |
Список | pgsql-patches |
Dwight Emmons wrote: [Why did you post this to pgsql-patches of all places? it should properly have gone to pgsql-general, I think] > My company is currently using version 7.2 and would like to convert to > the latest version. Unfortunately, version 7.3 implicitly casts a null > text to an int4. For example: > > Create table employee_table ( > > employee_id integer > > employee_name text > > employee_address text); > > Select * from employee_table where employee_id = ‘’; > That's not a NULL at all, it's an empty string. You really need to understand the difference between the two. Old editions of postgres did take an empty string literal as a 0 for ints, modern version quite rightly reject it as invalid. use NULL if you mean NULL and 0 if you mean 0. > When executing this select statement in version 7.2 the null will be > converted to an int zero and not fail. In version 8.2 it fails. We > have over 20,000 lines of code and do not want to modify and test all > of it. Has anyone come across this problem? (I am not interested in > debating the theory of nulls versus zero. I am just trying to avoid > unnecessary costs). > > I am not a DBA, and am looking for explicit instructions to solve this > problem. Is it possible to create a CAST after upgrading to version > 8.2? My research tells me the following cast was no longer implemented > after version 7.2. Will executing the following CAST solve my problem? > > CREATE CAST (text AS int4) WITH FUNCTION int4(text); > > If so, can someone give me instructions as to executing this statement? > > Any help is appreciated…. > This has nothing to do with casts, I believe - it has to to with what the input routines accept. I strongly suspect that renovating your code is your best choice, much as that might pain you. cheers andrew
В списке pgsql-patches по дате отправления: