You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Lev (JIRA)" <ji...@apache.org> on 2016/07/06 06:15:11 UTC

[jira] [Comment Edited] (SPARK-16387) Reserved SQL words are not escaped by JDBC writer

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

Lev edited comment on SPARK-16387 at 7/6/16 6:14 AM:
-----------------------------------------------------

JdbcDialect class has a functionality that allows DB-dependent quotation. Please note that quotation has to be applied to all SQL statement generation code


was (Author: lev.numerify):
JdbcDialect class has a functionality that allows DB-dependent quotation. Please note that quotation has to be applied to all SQL statement generation. code

> Reserved SQL words are not escaped by JDBC writer
> -------------------------------------------------
>
>                 Key: SPARK-16387
>                 URL: https://issues.apache.org/jira/browse/SPARK-16387
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.0.0
>            Reporter: Lev
>
> Here is a code (imports are omitted)
> object Main extends App {
>   val sqlSession = SparkSession.builder().config(new SparkConf().
>     setAppName("Sql Test").set("spark.app.id", "SQLTest").
>     set("spark.master", "local[2]").
>     set("spark.ui.enabled", "false")
>     .setJars(Seq("/mysql/mysql-connector-java-5.1.38.jar" ))
>   ).getOrCreate()
>   import sqlSession.implicits._
>   val localprops = new Properties
>   localprops.put("user", "xxxx")
>   localprops.put("password", "xxxx")
>   val df = sqlSession.createDataset(Seq("a","b","c")).toDF("order")
>   val writer = df.write
>   .mode(SaveMode.Append)
>   writer
>   .jdbc("jdbc:mysql://localhost:3306/test3", s"jira_test", localprops)
> }
> End error is :
> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order TEXT )' at line 1
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> Clearly the reserved word <order> has to be quoted



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

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