Re: pgsql 10.19 : "ERROR: cannot convert infinity to numeric" except there is no infinity - Mailing list pgsql-general
From | Adrian Klaver |
---|---|
Subject | Re: pgsql 10.19 : "ERROR: cannot convert infinity to numeric" except there is no infinity |
Date | |
Msg-id | 35ecc7d6-14a6-7898-db04-236504946589@aklaver.com Whole thread Raw |
In response to | pgsql 10.19 : "ERROR: cannot convert infinity to numeric" except there is no infinity (Achilleas Mantzios <achill@matrix.gatewaynet.com>) |
Responses |
Re: pgsql 10.19 : "ERROR: cannot convert infinity to numeric" except there is no infinity
|
List | pgsql-general |
On 7/19/22 03:38, Achilleas Mantzios wrote: I reformatted queries to see thing better. > > -- still has problem testing the range > > select it.id ,cept.value::numeric as val, > numrange(ceptl.min_alarm::numeric,ceptl.max_alarm::numeric > ,'()') as range from items it, cept_report cept , dynacom.vessels vsl, > machdefs md, cept_reportlimits ceptl wh > ere it.id=cept.id AND md.defid=ceptl.defid AND it.defid=md.defid AND > it.vslwhid=vsl.id AND vsl.vslstatus='Acti > ve' and md.application = 'Critical Equipment Performance Test' AND > cept.systemdate>= (now()-'1 year'::interval > ) AND numrange(ceptl.min_alarm::numeric,ceptl.max_alarm::numeric,'()') > @> cept.value::numeric ORDER BY 1; > ERROR: cannot convert infinity to numeric SELECT it.id, cept.value::numeric AS val, numrange(ceptl.min_alarm::numeric, ceptl.max_alarm::numeric, '()') AS RANGE FROM items it, cept_report cept, dynacom.vessels vsl, machdefs md, cept_reportlimits ceptl wh ere it.id = cept.id AND md.defid = ceptl.defid AND it.defid = md.defid AND it.vslwhid = vsl.id AND vsl.vslstatus = 'Acti ve' and md.application = 'Critical Equipment Performance Test' AND cept.systemdate>= (now()-'1 year'::interval) AND numrange(ceptl.min_alarm::numeric, ceptl.max_alarm::numeric, '()') @> cept.value::numeric ORDER BY 1; So the above fails. In your title when you say there is no infinity that means the cept.value, ceptl.min_alarm or ceptl.max_alarm fields do not have any '-infinity' or 'infinity' values, correct? > > > -- no problem if the query goes into its barrier and the test done outside > with bar as (select it.id ,cept.value::numeric as val, > numrange(ceptl.min_alarm::numeric,ceptl.max_a > larm::numeric,'()') as range from items it, cept_report cept , > dynacom.vessels vsl, machdefs md, cept_reportli > mits ceptl where it.id=cept.id AND md.defid=ceptl.defid AND > it.defid=md.defid AND it.vslwhid=vsl.id AND vsl.vs > lstatus='Active' and md.application = 'Critical Equipment Performance > Test' AND cept.systemdate>= (now()-'1 ye > ar'::interval) ORDER BY 1) > select * from bar where NOT range @> val; > -- good data here WITH bar AS ( SELECT it.id, cept.value::numeric AS val, numrange(ceptl.min_alarm::numeric, ceptl.max_alarm::numeric, '()') AS RANGE FROM items it, cept_report cept, dynacom.vessels vsl, machdefs md, cept_reportli mits ceptl WHERE it.id = cept.id AND md.defid = ceptl.defid AND it.defid = md.defid AND it.vslwhid = vsl.id AND vsl.vs lstatus = 'Active' AND md.application = 'Critical Equipment Performance Test' AND cept.systemdate >= (now() - '1 ye ar'::interval) ORDER BY 1 ) SELECT * FROM bar WHERE NOT RANGE @> val; This version succeeds, correct? So breaking the range construction into one step and the @> test into another works. Though I am not sure why <range> @> changed to NOT <range> @>? > > -- > Achilleas Mantzios > DBA, Analyst, IT Lead > IT DEPT > Dynacom Tankers Mgmt > -- Adrian Klaver adrian.klaver@aklaver.com
pgsql-general by date: