SybaseASE15Dialect getMaxAliasLength() cause SQL exception

Description

After upgrade Hibernate from 3.2.0 to 3.6.0, I got following exception with following SQL (converted from HQL):

select defaultwdo1_.displayDescriptionTemplate as displayDescriptionTemplate30_1_ from WJob wjob0_, WDocDist defaultwdo1_

Caused by: com.sybase.jdbc3.jdbc.SybSQLException: The identifier that starts with 'displayDescriptionTemplate30_1' is too long. Maximum length is 30.

at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.ResultGetter.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.queryLoop(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown Source)
at com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)

The same SQL can be executed in native Sybase ISQL environment without any error.

The workaround using Sybase11Dilect or modify getMaxAliasLength() inside SybaseASE15Dialect to return a smaller number(e.g. 20)

Environment

Sybase ASE 15.5 with Sybase JDBC 3 (jconn3.jar)
Hibernate 3.6.0 final
JDK 1.6.0_23

Status

Assignee

Unassigned

Reporter

Yang Li

Fix versions

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Affects versions

3.6.1
3.6.0
5.2.0

Priority

Critical