[ 
https://issues.apache.org/jira/browse/SPARK-2339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14050721#comment-14050721
 ] 

Yin Huai edited comment on SPARK-2339 at 7/3/14 1:46 PM:
---------------------------------------------------------

Also, names of those registered tables are case-sensitive. But, names of Hive 
tables are case-insensitive. It may cause confusion when a user is using 
HiveContext. I guess we want to keep registered tables case-sensitive. I will 
add doc to registerAsTable and registerRDDAaTable.


was (Author: yhuai):
Also, names of those registered tables are case sensitive. But, names of Hive 
tables are case insensitive. It will cause confusion when a user using 
HiveContext. I think it may be good to treat all identifiers case insensitive 
when a user is using HiveContext and make HiveContext.sql as a alias of 
HiveContext.hql (basically do not expose catalyst's SQLParser in HiveContext).

> SQL parser in sql-core is case sensitive, but a table alias is converted to 
> lower case when we create Subquery
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-2339
>                 URL: https://issues.apache.org/jira/browse/SPARK-2339
>             Project: Spark
>          Issue Type: Bug
>    Affects Versions: 1.0.0
>            Reporter: Yin Huai
>             Fix For: 1.1.0
>
>
> Reported by 
> http://apache-spark-user-list.1001560.n3.nabble.com/Spark-SQL-Join-throws-exception-td8599.html
> After we get the table from the catalog, because the table has an alias, we 
> will temporarily insert a Subquery. Then, we convert the table alias to lower 
> case no matter if the parser is case sensitive or not.
> To see the issue ...
> {code}
> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
> import sqlContext.createSchemaRDD
> case class Person(name: String, age: Int)
> val people = 
> sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p 
> => Person(p(0), p(1).trim.toInt))
> people.registerAsTable("people")
> sqlContext.sql("select PEOPLE.name from people PEOPLE")
> {code}
> The plan is ...
> {code}
> == Query Plan ==
> Project ['PEOPLE.name]
>  ExistingRdd [name#0,age#1], MapPartitionsRDD[4] at mapPartitions at 
> basicOperators.scala:176
> {code}
> You can find that "PEOPLE.name" is not resolved.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to