mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-17 00:24:57 +00:00
Fix HHH-11352 - the Pattern at buildShallowIndexPattern where "wordBoundary==true" should wrap the pattern properly with '\b'
This commit is contained in:
parent
dd9c68a862
commit
56f7466d52
@ -361,14 +361,15 @@ private static int shallowIndexOfPattern(final StringBuilder sb, final Pattern p
|
|||||||
* based on the search pattern that is not enclosed in parenthesis.
|
* based on the search pattern that is not enclosed in parenthesis.
|
||||||
*
|
*
|
||||||
* @param pattern String search pattern.
|
* @param pattern String search pattern.
|
||||||
* @param wordBoundardy whether to apply a word boundary restriction.
|
* @param wordBoundary whether to apply a word boundary restriction.
|
||||||
* @return Compiled {@link Pattern}.
|
* @return Compiled {@link Pattern}.
|
||||||
*/
|
*/
|
||||||
private static Pattern buildShallowIndexPattern(String pattern, boolean wordBoundardy) {
|
private static Pattern buildShallowIndexPattern(String pattern, boolean wordBoundary) {
|
||||||
return Pattern.compile(
|
return Pattern.compile(
|
||||||
"(" +
|
"(" +
|
||||||
( wordBoundardy ? "\\b" : "" ) +
|
( wordBoundary ? "\\b" : "" ) +
|
||||||
pattern +
|
pattern +
|
||||||
|
( wordBoundary ? "\\b" : "" ) +
|
||||||
")(?![^\\(|\\[]*(\\)|\\]))",
|
")(?![^\\(|\\[]*(\\)|\\]))",
|
||||||
Pattern.CASE_INSENSITIVE
|
Pattern.CASE_INSENSITIVE
|
||||||
);
|
);
|
||||||
|
@ -128,6 +128,16 @@ public void testGetLimitStringAliasGenerationWithAliasesNoAs() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestForIssue(jiraKey = "HHH-11352")
|
||||||
|
public void testPagingWithColumnNameStartingWithFrom() {
|
||||||
|
final String sql = "select column1 c1, from_column c2 from table1";
|
||||||
|
assertEquals( "WITH query AS (SELECT inner_query.*, ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__ FROM ( " +
|
||||||
|
"select column1 c1, from_column c2 from table1 ) inner_query ) " +
|
||||||
|
"SELECT c1, c2 FROM query WHERE __hibernate_row_nr__ >= ? AND __hibernate_row_nr__ < ?",
|
||||||
|
dialect.getLimitHandler().processSql(sql, toRowSelection(3, 5)));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestForIssue(jiraKey = "HHH-7019")
|
@TestForIssue(jiraKey = "HHH-7019")
|
||||||
public void testGetLimitStringWithSubselect() {
|
public void testGetLimitStringWithSubselect() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user