[hibernate-commits] Hibernate SVN: r10607 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Oct 18 10:12:12 EDT 2006


Author: steve.ebersole at jboss.com
Date: 2006-10-18 10:12:11 -0400 (Wed, 18 Oct 2006)
New Revision: 10607

Modified:
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
Log:
fixed erroneous assertions for Sybase/SQLServer

Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java	2006-10-18 14:10:09 UTC (rev 10606)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java	2006-10-18 14:12:11 UTC (rev 10607)
@@ -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;
@@ -824,20 +826,28 @@
 		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);




More information about the hibernate-commits mailing list