[ 
https://issues.apache.org/jira/browse/OPENJPA-2966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Solodovnik updated OPENJPA-2966:
--------------------------------------
    Description: 
Discussion thread: 
https://github.com/apache/openjpa/pull/144#discussion_r3683002577


**(medium)** Casting to Long uses {{dict.decimalTypeName}}; on MySQL {{CAST(x 
AS DECIMAL)}} defaults to DECIMAL(10,0), so large long values overflow/truncate 
- why not {{bigintTypeName}} for the long case? 

Also {{getDbNumberTargetTypeName}} sanitizes the {{{0}}} size suffix while the 
sibling {{TypecastAsString.java:152}} appends {{dict.varcharTypeName}} raw - 
the two siblings should share the same sanitize logic.

  was:
Discussion thread: 
https://github.com/apache/openjpa/pull/144#discussion_r3683002577


**(medium)** Casting to Long uses `dict.decimalTypeName`; on MySQL `CAST(x AS 
DECIMAL)` defaults to DECIMAL(10,0), so large long values overflow/truncate - 
why not `bigintTypeName` for the long case? Also `getDbNumberTargetTypeName` 
sanitizes the `{0}` size suffix while the sibling TypecastAsString.java:152 
appends `dict.varcharTypeName` raw - the two siblings should share the same 
sanitize logic.


> Long cast uses decimalTypeName instead of bigint
> ------------------------------------------------
>
>                 Key: OPENJPA-2966
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2966
>             Project: OpenJPA
>          Issue Type: Sub-task
>          Components: jpa
>    Affects Versions: 4.2.0
>            Reporter: Maxim Solodovnik
>            Assignee: Maxim Solodovnik
>            Priority: Major
>             Fix For: 4.2.0
>
>
> Discussion thread: 
> https://github.com/apache/openjpa/pull/144#discussion_r3683002577
> **(medium)** Casting to Long uses {{dict.decimalTypeName}}; on MySQL {{CAST(x 
> AS DECIMAL)}} defaults to DECIMAL(10,0), so large long values 
> overflow/truncate - why not {{bigintTypeName}} for the long case? 
> Also {{getDbNumberTargetTypeName}} sanitizes the {{{0}}} size suffix while 
> the sibling {{TypecastAsString.java:152}} appends {{dict.varcharTypeName}} 
> raw - the two siblings should share the same sanitize logic.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to