[SPARK-43485][SQL] Fix the error message for the unit
argument of the datetime add/diff functions
#41143
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
In the PR, I propose to extend the grammar rule of the
DATEADD
/TIMESTAMPADD
andDATEDIFF
/TIMESTAMPDIFF
, and catch wrong type of the first argumentunit
when an user pass a string instead of an identifier likeYEAR
, ...,MICROSECOND
. In that case, Spark raised an error of new error classINVALID_PARAMETER_VALUE.DATETIME_UNIT
.Why are the changes needed?
To make the error message clear for the case when a literal string instead of an identifier is passed to the datetime
ADD
/DIFF
functions:Does this PR introduce any user-facing change?
Yes, it changes the error class.
After the changes:
How was this patch tested?
By running the existing test suites: