gengliangwang commented on code in PR #36896:
URL: https://github.com/apache/spark/pull/36896#discussion_r899667100
##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala:
##########
@@ -160,28 +181,28 @@ trait CheckAnalysis extends PredicateHelper with
LookupCatalog {
throw QueryCompilationErrors.commandUnsupportedInV2TableError("SHOW
TABLE EXTENDED")
case operator: LogicalPlan =>
- // Check argument data types of higher-order functions downwards first.
- // If the arguments of the higher-order functions are resolved but the
type check fails,
- // the argument functions will not get resolved, but we should report
the argument type
- // check failure instead of claiming the argument functions are
unresolved.
operator transformExpressionsDown {
+ // Check argument data types of higher-order functions downwards
first.
+ // If the arguments of the higher-order functions are resolved but
the type check fails,
+ // the argument functions will not get resolved, but we should
report the argument type
+ // check failure instead of claiming the argument functions are
unresolved.
case hof: HigherOrderFunction
if hof.argumentsResolved &&
hof.checkArgumentDataTypes().isFailure =>
hof.checkArgumentDataTypes() match {
case TypeCheckResult.TypeCheckFailure(message) =>
hof.failAnalysis(
s"cannot resolve '${hof.sql}' due to argument data type
mismatch: $message")
}
+
+ // If an attribute can't be resolved as a map key of string type,
either the key should be
+ // surrounded with single quotes, or there is a typo in the
attribute name.
Review Comment:
I tried to match `element_at` and `try_element_at` here. But before the
functions are not resolved yet in the rule `ResolveFunctions`, the error
`MISSING_COLUMN` is thrown.
Checking the unresolved function name and arguments can work but is quite
ugly. I decided to handle the `[]` operator first.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]