Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 10:10:09 -0400 (Wed, 18 Oct 2006)
New Revision: 10606
Modified:
trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
Log:
fixed erroneous assertions for Sybase/SQLServer
Modified: trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2006-10-18
12:33:29 UTC (rev 10605)
+++ trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2006-10-18
14:10:09 UTC (rev 10606)
@@ -29,6 +29,8 @@
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.SQLServerDialect;
+import org.hibernate.dialect.SybaseDialect;
import org.hibernate.stat.QueryStatistics;
import org.hibernate.test.TestCase;
import org.hibernate.test.any.PropertyValue;
@@ -897,25 +899,33 @@
if ( getDialect() instanceof DB2Dialect ) {
assertTrue( str.startsWith("1.234") );
}
+ else if ( getDialect() instanceof SQLServerDialect) {
+ // no assertion as SQLServer always returns nulls here; even trying directly against
the
+ // database, it seems to have problems with str() in the where clause...
+ }
else {
assertTrue( str.startsWith("123.4") );
}
- String dateStr1 = (String) session.createQuery("select str(current_date) from
Animal").uniqueResult();
- String dateStr2 = (String) session.createQuery("select
str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date))
from Animal").uniqueResult();
- System.out.println(dateStr1 + '=' + dateStr2);
- if ( ! ( getDialect() instanceof Oracle9Dialect ) ) { //Oracle renders the name of the
month :(
- String[] dp1 = StringHelper.split("-", dateStr1);
- String[] dp2 = StringHelper.split("-", dateStr2);
- for (int i=0; i<3; i++) {
- if ( dp1[i].startsWith( "0" ) ) {
- dp1[i] = dp1[i].substring( 1 );
+ if ( ! ( getDialect() instanceof SybaseDialect) ) {
+ // In TransactSQL (the variant spoken by Sybase and SQLServer), the str() function
+ // is explicitly intended for numeric values only...
+ String dateStr1 = (String) session.createQuery("select str(current_date) from
Animal").uniqueResult();
+ String dateStr2 = (String) session.createQuery("select
str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date))
from Animal").uniqueResult();
+ System.out.println(dateStr1 + '=' + dateStr2);
+ if ( ! ( getDialect() instanceof Oracle9Dialect ) ) { //Oracle renders the name of the
month :(
+ String[] dp1 = StringHelper.split("-", dateStr1);
+ String[] dp2 = StringHelper.split("-", dateStr2);
+ for (int i=0; i<3; i++) {
+ if ( dp1[i].startsWith( "0" ) ) {
+ dp1[i] = dp1[i].substring( 1 );
+ }
+ assertEquals( dp1[i], dp2[i] );
}
- assertEquals( dp1[i], dp2[i] );
}
}
session.delete(an);
txn.commit();
- session.close();
+ session.close();
}
public void testCast() {