Search Postgresql Archives

Re: cast needed - but where and why?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Steve Clark <sclark@xxxxxxxxxxxxx> writes:
> I am getting the following error after upgrading from 7.4.6 to 8.3.6
> and can't figure out what is wrong. Any help would be greatly appreciated.
> 2009-04-02 10:45:10 EDT:srm2api:ERROR:  column "event_ref_log_no" is of type integer but expression is of type text at character 146

I don't know ecpg very well, but if it doesn't provide any information
about parameter datatypes then the backend would resolve this:

	case  when  $7  > 0 then  $8  else null end

as producing a result of type "text".  7.4 would have allowed that to be
cast to int silently, but 8.3 won't (and the runtime cast involved
would've been expensive anyway).  I suggest sticking a cast directly
on the ambiguous parameter, ie

> 			case 	when :h_event_ref_log_no > 0
> 					then :h_event_ref_log_no :: integer
>                     else null end,

(You needn't cast the null, since the type attached to the other case
arm is a sufficient cue.)

			regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux