From 0ada3578897496acbfb2fe59ad2b1b6e55b0ca96 Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Wed, 8 Feb 2012 18:14:49 -0200 Subject: [PATCH] HHH-7041: Fix for messing up DISTINCT clause --- .../main/java/org/hibernate/dialect/SQLServer2005Dialect.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/SQLServer2005Dialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/SQLServer2005Dialect.java index 0f88b27306..6c2e004386 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/SQLServer2005Dialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/SQLServer2005Dialect.java @@ -149,7 +149,8 @@ public String getLimitString(String querySqlString, boolean hasOffset) { */ protected static void replaceDistinctWithGroupBy(StringBuilder sql) { int distinctIndex = sql.indexOf( DISTINCT ); - if ( distinctIndex > 0 ) { + int selectEndIndex = sql.indexOf( FROM ); + if (distinctIndex > 0 && distinctIndex < selectEndIndex) { sql.delete( distinctIndex, distinctIndex + DISTINCT.length() + 1 ); sql.append( " group by" ).append( getSelectFieldsWithoutAliases( sql ) ); }