[
https://issues.jboss.org/browse/TEIID-4269?page=com.atlassian.jira.plugin...
]
Ramesh Reddy commented on TEIID-4269:
-------------------------------------
What I was saying is "convert" function ignores the precision and scale values
if they are mentioned on query. My concern is what other places this can be manifested.
The solution could be ignoring the metadata provided and make odata layer metadata as wide
as possible, but seems wrong.
numeric calculated fields not displayed with odata4
---------------------------------------------------
Key: TEIID-4269
URL:
https://issues.jboss.org/browse/TEIID-4269
Project: Teiid
Issue Type: Bug
Components: OData
Affects Versions: 8.13.3
Reporter: Mirco Marchitiello
Assignee: Ramesh Reddy
Priority: Minor
I've created a virtual table with a new field defined in this way:
select ROUND((BA.PREIS / BA.PEINH), 3) AS UnitPrice from xxxxxx
for the source field are bigdecimal I define UnitPrice as
BigDecimal (13,3)
If I run the qery from JDBC
select * from PurchaseRequisitionEntity where PurchaseRequisitionKey =
'300-8000001452-00010' ;
PREIS = 539,568
PEINH = 106
UnitPrice = 5,090.264
And the result is correct. If I run from odata2
/odata/CASALE.1/Entities.PurchaseRequisitionEntity('300-8000001452-00010')?$format=json
"UnitPrice" : "5090.2640000000000000"
As you can see the field is rounded to the 3rd digit but 13 more digits are returned with
0 value.
Anyway odata2 succeeds in returning the result without errors.
With odata4 I get an error:
/odata4/CASALE.1/Entities/PurchaseRequisitionEntity('300-8000001452-00010')?$format=json
{"error":{"code":null,"message":"The value
'5090.2640000000000000' is not valid for property 'UnitPrice'."}}
I think that's because the length of the field is greater then the matedata
definition.
At the moment the only solution I can imagine is to convert the number to a string in the
proper format and the parse it into a number
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)