Skip to content

Commit 9d9c25a

Browse files
committed
Verify plain DISTINCT retains unproven function analysis
1 parent 444573c commit 9d9c25a

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

‎src/test/java/net/sf/jsqlparser/statement/DistinctVisitorTest.java‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ void plainDistinctKeepsItsAbsentOnList() throws JSQLParserException {
5757
assertThat(select.toString()).isEqualTo("SELECT DISTINCT id FROM foo");
5858
}
5959

60+
@ParameterizedTest
61+
@ValueSource(strings = {"SELECT DISTINCT unproven(id) FROM foo",
62+
"SELECT * FROM (SELECT DISTINCT unproven(id) FROM foo) x",
63+
"WITH x AS (SELECT DISTINCT unproven(id) FROM foo) SELECT * FROM x"})
64+
void plainDistinctStillReportsUnprovenFunctions(String sql) throws JSQLParserException {
65+
StatementFeatures features = CCJSqlParserUtil.parse(sql).getFeatures(n -> false);
66+
assertThat(features.getUnresolvedReferences()).containsExactly("unproven");
67+
assertThat(features.mayModifyData()).isTrue();
68+
assertThat(features.modifiesData()).isFalse();
69+
}
70+
6071
@Test
6172
void selectAndOutputItemsKeepCallbackOrderAndContext() throws JSQLParserException {
6273
List<String> seen = new ArrayList<>();

0 commit comments

Comments
 (0)