Skip to content

Commit 455c5f5

Browse files
committed
fixes #670
added testcase, corrected deparser
1 parent 138412c commit 455c5f5

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/main/java/net/sf/jsqlparser/util/deparser/ExpressionDeParser.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
import java.util.Iterator;
2525
import java.util.List;
26-
2726
import net.sf.jsqlparser.expression.AllComparisonExpression;
2827
import net.sf.jsqlparser.expression.AnalyticExpression;
2928
import net.sf.jsqlparser.expression.AnyComparisonExpression;
@@ -45,7 +44,6 @@
4544
import net.sf.jsqlparser.expression.KeepExpression;
4645
import net.sf.jsqlparser.expression.LongValue;
4746
import net.sf.jsqlparser.expression.MySQLGroupConcat;
48-
import net.sf.jsqlparser.expression.ValueListExpression;
4947
import net.sf.jsqlparser.expression.NotExpression;
5048
import net.sf.jsqlparser.expression.NullValue;
5149
import net.sf.jsqlparser.expression.NumericBind;
@@ -59,6 +57,7 @@
5957
import net.sf.jsqlparser.expression.TimeValue;
6058
import net.sf.jsqlparser.expression.TimestampValue;
6159
import net.sf.jsqlparser.expression.UserVariable;
60+
import net.sf.jsqlparser.expression.ValueListExpression;
6261
import net.sf.jsqlparser.expression.WhenClause;
6362
import net.sf.jsqlparser.expression.WindowElement;
6463
import net.sf.jsqlparser.expression.operators.arithmetic.Addition;
@@ -624,6 +623,9 @@ public void visit(AnalyticExpression aexpr) {
624623
} else if (isAllColumns) {
625624
buffer.append("*");
626625
}
626+
if (aexpr.isIgnoreNulls()) {
627+
buffer.append(" IGNORE NULLS");
628+
}
627629
buffer.append(") ");
628630
if (keep != null) {
629631
keep.accept(this);

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1780,7 +1780,7 @@ public void testAnalyticFunctionProblem1b() throws JSQLParserException {
17801780

17811781
@Test
17821782
public void testAnalyticFunctionIssue670() throws JSQLParserException {
1783-
assertSqlCanBeParsedAndDeparsed("SELECT last_value(some_column IGNORE NULLS) OVER ( PARTITION BY some_other_column_1, some_other_column_2 ORDER BY some_other_column_3 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) column_alias FROM some_table");
1783+
assertSqlCanBeParsedAndDeparsed("SELECT last_value(some_column IGNORE NULLS) OVER (PARTITION BY some_other_column_1, some_other_column_2 ORDER BY some_other_column_3 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) column_alias FROM some_table");
17841784
}
17851785

17861786
@Test

0 commit comments

Comments
 (0)