[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-4979) org.hibernate.test.hql.ASTParserLoadingTest failure running testCastInSelect with Ingres

Steve Ebersole (JIRA) noreply at atlassian.com
Wed Mar 10 10:27:47 EST 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-4979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=35790#action_35790 ] 

Steve Ebersole commented on HHH-4979:
-------------------------------------

Well you tell me...  

You are being asked to do a cast to java.sql.Types#NUMERIC (because that is the JDBC type reported by Hibernate's BigDecimalType).  So does (arbitrarily) cutting this off at a scale of 2 seem reasonable?

Based on your "seems to truncate the scale digits" comment it would appear ingres assumes zero scale if not specified.  What if you set some large number instead in the getCastTypeName return?
{code:title=IngresDialect}
public String getCastTypeName(int code) {
    if ( code == Types.NUMBER ) {
        // return something more ingres appropriate
        int precision = ???;
        int scale = ???;
        return "decimal(" + precision + ',' + scale + ')';
    }
    return super.getCastTypeName( code );
}
{code}

> org.hibernate.test.hql.ASTParserLoadingTest failure running testCastInSelect with Ingres
> ----------------------------------------------------------------------------------------
>
>                 Key: HHH-4979
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4979
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: testsuite
>    Affects Versions: 3.5.0-CR-2
>         Environment: Hibernate 3.5.0-CR, Ingres 9.3.1 (int.lnx/106), Ingres9Dialect
> mysql 51, posgresql 837
>            Reporter: Ray Fan
>            Assignee: Steve Ebersole
>            Priority: Minor
>         Attachments: hql-astparserloadingtest.zip
>
>
> Assertion failure executing testCastInSelect from org.hibernate.test.hql.ASTParserLoadingTest with Ingres.
> {noformat}
> <failure message="expected:<12.399999618530273> but was:<12.39>" type="junit.framework.AssertionFailedError">
> junit.framework.AssertionFailedError: expected:<12.399999618530273> but was:<12.39>;
>     at junit.framework.Assert.fail(Assert.java:47)
>     at junit.framework.Assert.failNotEquals(Assert.java:282)
>     at junit.framework.Assert.assertEquals(Assert.java:64)
>     at junit.framework.Assert.assertEquals(Assert.java:71)
>     at org.hibernate.test.hql.ASTParserLoadingTest.testCastInSelect(ASTParserLoadingTest.java:1291)
> </failure>{noformat}
> The generated SQL from the HQL query taken from the output log is
> {noformat}
> 08:17:30,536 DEBUG QueryTranslatorImpl:241 - HQL: select cast(bodyWeight as big_decimal) from org.hibernate.test.hql.Animal
> 08:17:30,536 DEBUG QueryTranslatorImpl:242 - SQL: select cast(animal0_.body_weight as decimal(19, 2)) as col_0_0_ from Animal animal0_
> Hibernate:
>     select
>         cast(animal0_.body_weight as decimal(19,
>         2)) as col_0_0_
>     from
>         Animal animal0_
> 08:17:30,701  INFO SessionFactoryImpl:908 - closing
> {noformat}
> The returned value from the query with a decimal(19,2) target data type is correct.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list