sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jarek Jarcec Cecho (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SQOOP-1890) Properly escape table name in generated queries
Date Sat, 13 Dec 2014 01:45:13 GMT

     [ https://issues.apache.org/jira/browse/SQOOP-1890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jarek Jarcec Cecho updated SQOOP-1890:
--------------------------------------
    Attachment: SQOOP-1890.patch

> Properly escape table name in generated queries
> -----------------------------------------------
>
>                 Key: SQOOP-1890
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1890
>             Project: Sqoop
>          Issue Type: Bug
>    Affects Versions: 1.4.5
>            Reporter: Jarek Jarcec Cecho
>            Assignee: Jarek Jarcec Cecho
>             Fix For: 1.4.6
>
>         Attachments: SQOOP-1890.patch
>
>
> I've got user reporting broken incremental import if the table name contained non-alphanumerical
characters (dashes, ...):
> {code}
> 14/12/12 02:35:35 INFO tool.ImportTool: Maximal id query for free form incremental import:
SELECT MAX(`name`) FROM my-table
> 14/12/12 02:35:35 ERROR tool.ImportTool: Encountered IOException running import job:
java.io.IOException: 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 '-table' at line 1
>     at org.apache.sqoop.tool.ImportTool.initIncrementalConstraints(ImportTool.java:316)
>     at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:488)
>     at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
>     at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
>     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>     at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
>     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
>     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
>     at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
> Caused by: 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 '-table' at line 1
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>     at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>     at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
>     at com.mysql.jdbc.Util.getInstance(Util.java:382)
>     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
>     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3603)
>     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535)
>     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)
>     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)
>     at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
>     at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2570)
>     at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1476)
>     at org.apache.sqoop.tool.ImportTool.getMaxColumnId(ImportTool.java:231)
>     at org.apache.sqoop.tool.ImportTool.initIncrementalConstraints(ImportTool.java:303)
> {code}
> It seems that we're not properly escaping the table name in all queries and we should
rectify that.



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

Mime
View raw message