[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-6950) Bogus string replacement in SQLServer2005Dialect.insertRowNumberFunction()
Piotr Findeisen (JIRA)
noreply at atlassian.com
Mon May 14 08:18:09 EDT 2012
[ https://hibernate.onjira.com/browse/HHH-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46645#comment-46645 ]
Piotr Findeisen commented on HHH-6950:
--------------------------------------
Besides fixing the implementation, could you also fix the javadoc of {{insertRowNumberFunction}}?
Since HHH-6849 it's a bit misleading as it's still states
{quote}Right after the select statement of a given query we must place the row_number function{quote}
> 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: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list