Fix NPE when parsing modifying HQL.
Closes #3649 Original pull request: #3650
This commit is contained in:
committed by
Mark Paluch
parent
3ad78aba4f
commit
84e0e323f7
@@ -101,8 +101,12 @@ class HqlQueryTransformer extends HqlQueryRenderer {
|
||||
return false;
|
||||
} else if (ctx instanceof HqlParser.InsertStatementContext) {
|
||||
return false;
|
||||
} else if (ctx instanceof HqlParser.DeleteStatementContext) {
|
||||
return false;
|
||||
} else if (ctx instanceof HqlParser.UpdateStatementContext) {
|
||||
return false;
|
||||
} else {
|
||||
return isSubquery(ctx.getParent());
|
||||
return ctx.getParent() != null ? isSubquery(ctx.getParent()) : false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -995,16 +995,23 @@ class HqlQueryTransformerTests {
|
||||
.isEqualTo("FROM Story WHERE enabled = true order by created desc");
|
||||
}
|
||||
|
||||
@Test // GH-2977
|
||||
void isSubqueryThrowsException() {
|
||||
|
||||
String query = """
|
||||
insert into MyEntity (id, col)
|
||||
select max(id), col
|
||||
from MyEntityStaging
|
||||
group by col
|
||||
""";
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = { """
|
||||
insert into MyEntity (id, col)
|
||||
select max(id), col
|
||||
from MyEntityStaging
|
||||
group by col
|
||||
""", """
|
||||
update MyEntity AS mes
|
||||
set mes.col = 'test'
|
||||
where mes.id = 1
|
||||
""", """
|
||||
delete MyEntity AS mes
|
||||
where mes.col = 'test'
|
||||
"""
|
||||
|
||||
}) // GH-2977, GH-3649
|
||||
void isSubqueryThrowsException(String query) {
|
||||
assertThat(createQueryFor(query, Sort.unsorted())).isEqualToIgnoringWhitespace(query);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user