[ 
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

        

Reply via email to