[teiid-issues] [JBoss JIRA] (TEIID-4269) numeric calculated fields not displayed with odata4

Mirco Marchitiello (JIRA) issues at jboss.org
Mon Jun 13 16:38:00 EDT 2016


Mirco Marchitiello created TEIID-4269:
-----------------------------------------

             Summary: 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: Steven Hawkins
            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)


More information about the teiid-issues mailing list