diff --git a/src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java b/src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java index 89bacff48..96f3c5ea2 100644 --- a/src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java +++ b/src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java @@ -430,7 +430,10 @@ public T visit(ExtractExpression extractExpression, S context) { @Override public T visit(IntervalExpression intervalExpression, S context) { - return intervalExpression.getExpression().accept(this, context); + if (intervalExpression.getExpression() != null) { + intervalExpression.getExpression().accept(this, context); + } + return null; } @Override diff --git a/src/test/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapterTest.java b/src/test/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapterTest.java index d9f45c2ca..0654480da 100644 --- a/src/test/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapterTest.java +++ b/src/test/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapterTest.java @@ -321,4 +321,11 @@ public Void visit(ExcludesExpression expr, S parameters) { assertInstanceOf(Column.class, exprList.get(0)); assertInstanceOf(ParenthesedExpressionList.class, exprList.get(1)); } + + @Test + public void testIntervalWithNoExpression() throws JSQLParserException { + Expression expr = CCJSqlParserUtil.parseExpression("INTERVAL 1 DAY"); + ExpressionVisitorAdapter adapter = new ExpressionVisitorAdapter<>(); + expr.accept(adapter, null); + } }