[ 
https://issues.apache.org/jira/browse/OPENJPA-2966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18109486#comment-18109486
 ] 

ASF subversion and git services commented on OPENJPA-2966:
----------------------------------------------------------

Commit 249b36dc719ce05ae5128b4d8e1093a642ee0734 in openjpa's branch 
refs/heads/OPENJPA-2966 from Richard Zowalla
[ https://gitbox.apache.org/repos/asf?p=openjpa.git;h=249b36dc7 ]

[OPENJPA-2966] Cache resolved CAST target type names

getNumberCastTypeName() and getStringCastTypeName() are called on every
SQL generation and stripped the DDL size marker each time. Cache the
stripped names, keyed by the DDL type name they were derived from, so a
dictionary that assigns its type names in the constructor or in
connectedConfiguration() still resolves correctly.


> 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