Github user gatorsmile commented on a diff in the pull request: https://github.com/apache/spark/pull/14158#discussion_r119008402 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/ParseDriver.scala --- @@ -65,13 +65,29 @@ abstract class AbstractSqlParser extends ParserInterface with Logging { } /** Creates LogicalPlan for a given SQL string. */ - override def parsePlan(sqlText: String): LogicalPlan = parse(sqlText) { parser => - astBuilder.visitSingleStatement(parser.singleStatement()) match { - case plan: LogicalPlan => plan - case _ => - val position = Origin(None, None) - throw new ParseException(Option(sqlText), "Unsupported SQL statement", position, position) + override def parsePlan(sqlText: String): LogicalPlan = { + val logicalPlan = parse(sqlText) { parser => + astBuilder.visitSingleStatement(parser.singleStatement()) match { + case plan: LogicalPlan => plan + case _ => + val position = Origin(None, None) + throw new ParseException(Option(sqlText), "Unsupported SQL statement", position, position) + } + } + // Record the original sql text in the top logical plan for checking in the web UI. + // Truncate the text to avoid downing browsers or web UI servers by running out of memory. + val maxLength = 1000 + val suffix = " ... (truncated)" + val truncateLength = maxLength - suffix.length + val truncatedSqlText = { + if (sqlText.length <= maxLength) { + sqlText + } else { + sqlText.substring(0, truncateLength) + suffix + } } + logicalPlan.sqlText = Some(truncatedSqlText) + logicalPlan --- End diff -- The solution in this PR looks intrusive to me. If we really want to store the original sql text, we can add it into the QueryExecution. The value can be initialized when we build the QueryExecution
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org