Skip to content

Commit d39aa6d

Browse files
committed
HHH-18801 Add XML aggregate support for Sybase ASE
1 parent 6b1ea3e commit d39aa6d

File tree

6 files changed

+577
-2
lines changed

6 files changed

+577
-2
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SybaseASELegacyDialect.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import org.hibernate.dialect.DatabaseVersion;
1818
import org.hibernate.dialect.Dialect;
1919
import org.hibernate.dialect.SybaseDriverKind;
20+
import org.hibernate.dialect.aggregate.AggregateSupport;
21+
import org.hibernate.dialect.aggregate.SybaseASEAggregateSupport;
2022
import org.hibernate.dialect.function.CommonFunctionFactory;
2123
import org.hibernate.dialect.pagination.LimitHandler;
2224
import org.hibernate.dialect.pagination.TopLimitHandler;
@@ -228,6 +230,11 @@ protected <T extends JdbcOperation> SqlAstTranslator<T> buildTranslator(
228230
};
229231
}
230232

233+
@Override
234+
public AggregateSupport getAggregateSupport() {
235+
return SybaseASEAggregateSupport.valueOf( this );
236+
}
237+
231238
/**
232239
* The Sybase ASE {@code BIT} type does not allow
233240
* null values, so we don't use it.

hibernate-core/src/main/java/org/hibernate/dialect/SybaseASEDialect.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import org.hibernate.QueryTimeoutException;
1616
import org.hibernate.boot.model.FunctionContributions;
1717
import org.hibernate.boot.model.TypeContributions;
18+
import org.hibernate.dialect.aggregate.AggregateSupport;
19+
import org.hibernate.dialect.aggregate.SybaseASEAggregateSupport;
1820
import org.hibernate.dialect.function.CommonFunctionFactory;
1921
import org.hibernate.dialect.pagination.LimitHandler;
2022
import org.hibernate.dialect.pagination.TopLimitHandler;
@@ -252,6 +254,11 @@ protected <T extends JdbcOperation> SqlAstTranslator<T> buildTranslator(
252254
};
253255
}
254256

257+
@Override
258+
public AggregateSupport getAggregateSupport() {
259+
return SybaseASEAggregateSupport.valueOf( this );
260+
}
261+
255262
/**
256263
* The Sybase ASE {@code BIT} type does not allow
257264
* null values, so we don't use it.

hibernate-core/src/main/java/org/hibernate/dialect/XmlHelper.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ else if ( jdbcJavaType instanceof EnumJavaType<?> ) {
168168
case SqlTypes.DOUBLE:
169169
case SqlTypes.DECIMAL:
170170
case SqlTypes.NUMERIC:
171-
case SqlTypes.UUID:
172171
return jdbcJavaType.fromEncodedString(
173172
string,
174173
start,
@@ -227,6 +226,13 @@ else if ( jdbcJavaType instanceof EnumJavaType<?> ) {
227226
),
228227
options
229228
);
229+
case SqlTypes.UUID:
230+
return jdbcJavaType.wrap(
231+
PrimitiveByteArrayJavaType.INSTANCE.fromString(
232+
string.substring( start, end ).replace( "-", "" )
233+
),
234+
options
235+
);
230236
case SqlTypes.CHAR:
231237
case SqlTypes.NCHAR:
232238
case SqlTypes.VARCHAR:

0 commit comments

Comments
 (0)