-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
8.11.3
-
None
-
None
-
Workaround Exists
-
A certain query executes fine when using the normal timestamp column (w.valuetime). When this is changed to formattimestamp(w.valuetime, 'dd/MM/yyyy HH:mm') we get an exception complaining about a case statement that is part of the select a few columns after the particular valuetime column.
14:00:00,055 WARN [org.teiid.PROCESSOR] (Worker17615_QueryProcessorQueue95374) 7OLMH/JCvk3W TEIID30020 Processing exception for request 7OLMH/JCvk3W.48 'TEIID30259 Cannot introduce new expressions [CASE WHEN convert(anon_grp2.agg2, date) = convert(timestampadd(SQL_TSI_DAY, -1, convert(convert(now(), date), timestamp)), date) THEN 'Gisteren' ELSE CASE WHEN convert(anon_grp2.agg2, date) = convert(now(), date) THEN 'Vannacht' ELSE '' END END, CASE WHEN anon_grp2.agg3 IS NULL THEN 'Niet gemeten' ELSE 'OK' END, CASE WHEN anon_grp2.agg4 > 0 THEN 'OK' ELSE 'Ontbreekt' END] in duplicate removal.'. Originally QueryPlannerException RuleAssignOutputElements.java:407. Enable more detailed logging to see the entire stacktrace.
This was the query that caused the problem:
select w.patientid as Patientid,
formattimestamp(w.valuetime,'yyyy-MM-dd HH:mm') as t2,
w.valuetime as Tijdstip,
max(w.bed) as Bed, max(w.Naam) as Naam,
case when convert(max(w.opname), date) = timestampadd(SQL_TSI_DAY, -1, convert(now() , date)) then 'Gisteren'
else
case when convert(max(w.opname), date) = convert(now(), date) then 'Vannacht' else
'' end end as Opname,
case when count(w.MondZorgAantal) is null then 'Niet gemeten' else 'OK' end as Comfort,
case when count(w.EvaluatieMond) > 0 then 'OK' else 'Ontbreekt' end as NRS
from
(
select pi.patientid as Patientid, null as ValueTime, pi.bedabbr as Bed, concat(pi.PatientLastName, concat(', ',pi.PatientFirstName)) as Naam, pi.AdmTime as opname, null as MondZorgAantal, null as EvaluatieMond, patientStatusID
from prod_PV_PatientInfo pi
where pi.PatientStatusID = 1 and PatGroupAbbr like 'PICU%' and cast(pi.admTime as date) <> cast(now() as date)
union
select v.PatientID as Patientid, v.ValueTime, null as Bed, null as Naam, null as opname,
v.c as MondZorgAantal, null as EvaluatieMond, v.PatientStatusID from
(select obs1.PatientID, obs1.ValueTime, count as c , pi.PatientStatusID
from prod_PV_DerivedVariables obs1
join prod_PV_PatientInfo pi on pi.PatientID = obs1.PatientID and pi.PatientStatusID = 1 and cast(pi.admTime as date) <> cast(now() as date) and PatGroupAbbr like 'PICU%'
where obs1.variableid = 30010003
and cast(valuetime as date) = timestampadd(SQL_TSI_DAY, -1, cast(now() as date))
group by obs1.patientid, obs1.ValueTime, timestampadd(SQL_TSI_DAY, -1, cast(now() as date)), pi.PatientStatusID)v
union
select v.PatientID as Patientid, v.ValueTime, null as Bed, null as Naam, null as opname, null as MondZorgAantal, v.c as EvaluatieMond, v.PatientStatusID from
(select obs1.PatientID, obs1.ValueTime, count as c , pi.PatientStatusID
from prod_PV_ObservationVariables obs1
join prod_PV_PatientInfo pi on pi.PatientID = obs1.PatientID and pi.PatientStatusID = 1 and cast(pi.admTime as date) < cast(now() as date) and PatGroupAbbr like 'PICU%'
where obs1.variableid = 15005534
and cast(obs1.valuetime as date) = timestampadd(SQL_TSI_DAY, -1, cast(now() as date))
group by obs1.patientid, obs1.ValueTime, timestampadd(SQL_TSI_DAY, -1, cast(now() as date)), pi.PatientStatusID)v
) w
group by w.patientid, w.ValueTime
order by max(w.bed)