diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala index 16d62a301a3e9..7f9863576e636 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala @@ -2315,14 +2315,11 @@ class AstBuilder extends SqlBaseBaseVisitor[AnyRef] with SQLConfHelper with Logg override def visitInterval(ctx: IntervalContext): Literal = withOrigin(ctx) { val calendarInterval = parseIntervalLiteral(ctx) if (ctx.errorCapturingUnitToUnitInterval != null && !conf.legacyIntervalEnabled) { - if (calendarInterval.months != 0) { - if (calendarInterval.days != 0 || calendarInterval.microseconds != 0) { - throw QueryParsingErrors.mixedIntervalError(ctx) - } - Literal(calendarInterval.months, YearMonthIntervalType) - } else { + if (calendarInterval.months == 0) { val micros = IntervalUtils.getDuration(calendarInterval, TimeUnit.MICROSECONDS) Literal(micros, DayTimeIntervalType) + } else { + Literal(calendarInterval.months, YearMonthIntervalType) } } else { Literal(calendarInterval, CalendarIntervalType) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryParsingErrors.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryParsingErrors.scala index 93b392f7ab02b..d97b19954f63e 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryParsingErrors.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryParsingErrors.scala @@ -22,7 +22,6 @@ import org.antlr.v4.runtime.ParserRuleContext import org.apache.spark.sql.catalyst.parser.ParseException import org.apache.spark.sql.catalyst.parser.SqlBaseParser._ import org.apache.spark.sql.catalyst.trees.Origin -import org.apache.spark.sql.internal.SQLConf /** * Object for grouping all error messages of the query parsing. @@ -368,10 +367,4 @@ object QueryParsingErrors { new ParseException("LOCAL is supported only with file: scheme", ctx) } - def mixedIntervalError(ctx: ParserRuleContext): Throwable = { - new ParseException( - "Mixing of year-month and day-time fields is not allowed. " + - s"Set '${SQLConf.LEGACY_INTERVAL_ENABLED.key}' to true to enable the legacy interval type " + - "which supports mixed fields.", ctx) - } }