cloud-fan commented on code in PR #50408: URL: https://github.com/apache/spark/pull/50408#discussion_r2017844792
########## sql/api/src/main/scala/org/apache/spark/sql/catalyst/parser/DataTypeAstBuilder.scala: ########## @@ -45,6 +46,41 @@ class DataTypeAstBuilder extends SqlBaseParserBaseVisitor[AnyRef] { withOrigin(ctx)(StructType(visitColTypeList(ctx.colTypeList))) } + override def visitSingleRoutineParamList(ctx: SingleRoutineParamListContext): StructType = { + withOrigin(ctx)(StructType(visitRoutineParamList(ctx.routineParamList()))) + } + + override def visitRoutineParamList(ctx: RoutineParamListContext): Seq[StructField] = + withOrigin(ctx) { + ctx.routineParam().asScala.map(visitRoutineParam).toSeq + } + + override def visitRoutineParam(ctx: RoutineParamContext): StructField = + withOrigin(ctx) { + val builder = new MetadataBuilder + Option(ctx.defaultExpression()).foreach { expr => + builder.putString("default", verifyAndGetExpression(expr.expression())) + } + val col = ctx.colType() + StructField( + name = col.colName.getText, + dataType = typedVisit[DataType](col.dataType()), + nullable = true, + metadata = builder.build()) + } + + private def verifyAndGetExpression(exprCtx: ExpressionContext): String = { Review Comment: did you copy this method from somewhere? -- 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: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org