Github user marmbrus commented on a diff in the pull request:

    https://github.com/apache/spark/pull/4015#discussion_r29079066
  
    --- Diff: sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala ---
    @@ -132,17 +174,26 @@ class SQLContext(@transient val sparkContext: 
SparkContext)
       protected[sql] lazy val optimizer: Optimizer = DefaultOptimizer
     
       @transient
    -  protected[sql] val ddlParser = new DDLParser(sqlParser.parse(_))
    -
    -  @transient
    -  protected[sql] val sqlParser = {
    -    val fallback = new catalyst.SqlParser
    -    new SparkSQLParser(fallback.parse(_))
    +  protected[sql] val ddlParser = new DDLParser((sql: String) => { 
getSQLDialect().parse(sql) })
    +
    +  protected[sql] def getSQLDialect(): Dialect = {
    +    try {
    +      val clazz = Utils.classForName(dialectClassName)
    +      clazz.newInstance().asInstanceOf[Dialect]
    +    } catch {
    +      case NonFatal(e) =>
    +        // Since we didn't find the available SQL Dialect, it will fail 
even for SET command:
    +        // SET spark.sql.dialect=sql; Let's reset as default dialect 
automatically.
    +        val dialect = conf.dialect
    +        // reset the sql dialect
    +        conf.unsetConf(SQLConf.DIALECT)
    +        // throw out the exception, and the default sql dialect will take 
effect for next query.
    +        throw new DialectException(
    +          s"Unsupported SQL alias: $dialect, will set it as 
'${conf.dialect}'", e)
    --- End diff --
    
    Unsupported SQL alias: $dialect. Reverting to default dialect, 
'${conf.dialect}'


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to