]
Lukasz Antoniak resolved HHH-6950.
----------------------------------
Resolution: Fixed
Fix Version/s: 4.1.4
Bogus string replacement in
SQLServer2005Dialect.insertRowNumberFunction()
--------------------------------------------------------------------------
Key: HHH-6950
URL:
https://hibernate.onjira.com/browse/HHH-6950
Project: Hibernate ORM
Issue Type: Bug
Components: core, query-sql
Affects Versions: 4.0.0.Final
Environment: Hibernate 4.0.0, SQLServer 2008R2
Reporter: Roberto Italia
Assignee: Lukasz Antoniak
Labels: dialect, sqlserver
Fix For: 4.1.4
The fix for HHH-6849 introduced a problem with column-names containing the character
sequence 'from'.
For example, assume the string builder contains the following query before the call to
SQLServer2005Dialect.insertRowNumberFunction() (formatted for better reading):
select persistent0_.rid as rid1688_,
persistent0_.deviationfromtarget as deviati16_1688_,
persistent0_.sortindex as sortindex1688_
from m_evalstate persistent0_
where persistent0_.customerid=?
After the call to SQLServer2005Dialect.insertRowNumberFunction(), the string builder
contains:
select persistent0_.rid as rid1688_,
persistent0_.deviatio,
ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__nfromtarget
as deviati16_1688_,
persistent0_.sortindex as sortindex1688_
from m_evalstate persistent0_
where persistent0_.customerid=?
But the intention of the fix was:
select persistent0_.rid as rid1688_,
persistent0_.deviationfromtarget as deviati16_1688_,
persistent0_.sortindex as sortindex1688_,
ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__
from m_evalstate persistent0_
where persistent0_.customerid=?
A fix would be the following code instead of the current:
final String myFrom = " " + FROM + " ";
int selectEndIndex = sql.indexOf( myFrom );
sql.insert( selectEndIndex, ", ROW_NUMBER() OVER (" + orderby + ") as
__hibernate_row_nr__" );
--
This message is automatically generated by JIRA.
For more information on JIRA, see: