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

Takeshi Yamamuro commented on SPARK-18502:
------------------------------------------

Currently, AFAIK no.
However, the SQL standard 
(http://savage.net.au/SQL/sql-99.bnf.html#delimited%20identifier) specifies a 
double quotation (") as an escape one and I feel we need a general approach to 
escape these metacharacters in Spark.
Certainly, other databases can use back quotations in column names.
ex) PostgreSQL
{code}
postgres=# create table test_table("i`d" INT, "value" VARCHAR);
CREATE TABLE
postgres=# \d test_table
       Table "public.test_table"
 Column |       Type        | Modifiers 
--------+-------------------+-----------
 i`d    | integer           | 
 value  | character varying | 

postgres=# insert into test_table values(1, 'aa');
INSERT 0 1
postgres=# select "i`d" from test_table; 
  i`d 
-----
   1
(1 row)

{code}


> Spark does not handle columns that contain backquote (`)
> --------------------------------------------------------
>
>                 Key: SPARK-18502
>                 URL: https://issues.apache.org/jira/browse/SPARK-18502
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>            Reporter: Barry Becker
>            Priority: Minor
>
> I know that if a column contains dots or hyphens we can put 
> backquotes/backticks around it, but what if the column contains a backtick 
> (`)? Can the back tick be escaped by some means?
> Here is an example of the sort of error I see
> {code}
> org.apache.spark.sql.AnalysisException: syntax error in attribute name: 
> `Invoice`Date`;org.apache.spark.sql.catalyst.analysis.UnresolvedAttribute$.e$1(unresolved.scala:99)
>  
> org.apache.spark.sql.catalyst.analysis.UnresolvedAttribute$.parseAttributeName(unresolved.scala:109)
>  
> org.apache.spark.sql.catalyst.analysis.UnresolvedAttribute$.quotedString(unresolved.scala:90)
>  org.apache.spark.sql.Column.(Column.scala:113) 
> org.apache.spark.sql.Column$.apply(Column.scala:36) 
> org.apache.spark.sql.functions$.min(functions.scala:407) 
> com.mineset.spark.vizagg.vizbin.strategies.DateBinStrategy.getDateExtent(DateBinStrategy.scala:158)
>  
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to