[
https://issues.apache.org/jira/browse/SQOOP-473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242926#comment-13242926
]
Cheolsoo Park commented on SQOOP-473:
-------------------------------------
While working on my patch, I also noticed that all-tables import does not work
with Oracle at all. But I am not going to address Oracle in this Jira because
it is a totally different issue. According to a test that I quickly wrote, it
fails because the query that is executed to obtain all tables in the db returns
more tables than what the user has actually created. A new Jira will be opened
to track this issue.
Here is a call stack that I get from my test with Oracle for whom may be
curious:
{code}
java.lang.IllegalArgumentException: Attempted to generate class with no columns!
at
org.apache.sqoop.orm.ClassWriter.generateClassForColumns(ClassWriter.java:1251)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1139)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
at
org.apache.sqoop.tool.ImportAllTablesTool.run(ImportAllTablesTool.java:64)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:69)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:45)
at
com.cloudera.sqoop.testutil.ImportJobTestCase.runImport(ImportJobTestCase.java:215)
at
com.cloudera.sqoop.TestAllTables.testMultiTableImport(TestAllTables.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:420)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:911)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:768)
{code}
> Sqoop import-all-tables fails with MySQL connector
> --------------------------------------------------
>
> Key: SQOOP-473
> URL: https://issues.apache.org/jira/browse/SQOOP-473
> Project: Sqoop
> Issue Type: Bug
> Components: connectors
> Affects Versions: 1.4.1-incubating
> Reporter: Prashant Gokhale
> Assignee: Cheolsoo Park
>
> Sqoop command
> sqoop import-all-tables --connect jdbc:mysql://xxxx/mysqltestdb2
> --username=xxxx --warehouse-dir output-dir/alltables
> Output:
> {noformat}
> 12/03/29 10:42:20 INFO manager.MySQLManager: Preparing to use a MySQL
> streaming resultset.
> 12/03/29 10:42:21 INFO tool.CodeGenTool: Beginning code generation
> 12/03/29 10:42:21 INFO manager.SqlManager: Executing SQL statement: SELECT
> t.* FROM `testtable` AS t LIMIT 1
> 12/03/29 10:42:21 ERROR sqoop.Sqoop: Got exception running Sqoop:
> java.lang.NullPointerException
> java.lang.NullPointerException
> at
> org.apache.sqoop.manager.ConnManager.getColumnTypeNames(ConnManager.java:306)
> at
> org.apache.sqoop.manager.MySQLManager.toJavaType(MySQLManager.java:237)
> at org.apache.sqoop.orm.ClassWriter.toJavaType(ClassWriter.java:253)
> at org.apache.sqoop.orm.ClassWriter.generateFields(ClassWriter.java:480)
> at
> org.apache.sqoop.orm.ClassWriter.generateClassForColumns(ClassWriter.java:1306)
> at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1138)
> at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
> at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390)
> at
> org.apache.sqoop.tool.ImportAllTablesTool.run(ImportAllTablesTool.java:64)
> at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:69)
> at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
> at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
> at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
> {noformat}
> I have not tested with other connectors.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira