Stan Angeloff created SQOOP-824:
-----------------------------------
Summary: Sqoop code generation in 'update' export mode
incompatible with '--columns' option
Key: SQOOP-824
URL: https://issues.apache.org/jira/browse/SQOOP-824
Project: Sqoop
Issue Type: Bug
Components: codegen, tools
Affects Versions: 1.4.2
Environment: {code}
$ uname -a
Linux precise32 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC
2012 i686 i686 i386 GNU/Linux
$ hadoop version
Hadoop 0.23.4
Subversion
https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23.4/hadoop-common-project/hadoop-common
-r 1392631
Compiled by evans on Mon Oct 22 13:02:13 CDT 2012
>From source with checksum d5a2b33744f6dff6eecf84786baeb80c
{code}
Sqoop downloaded from
http://www.eu.apache.org/dist/sqoop/1.4.2/sqoop-1.4.2.bin__hadoop-0.23.tar.gz
Running in Vagrant VM with Ubuntu 12.04 LTS 32-bit.
Reporter: Stan Angeloff
Priority: Minor
When using the {{sqoop export}} with {{\-\-update-key}} and {{--columns}} the
options are incompatible. For example, given table {{T1}}
{code}
+------+
| T1 |
+------+
| id |
| name |
| mail |
| cell |
+-------
{code}
When using {{sqoop export [ .. ] --update-key id --update-mode allowinsert
--columns id,name}} the code generation utility creates a Java file which fails
to compile.
This seems to happen because {{ConnManager}} appends all table columns, even
those not mentioned on the command-line (see
{{ConnManager.configureDbOutputColumns}}. As a result, the generated class
contains a {{write}} method which references class members which do not exist.
I could suggest two possible solutions: 1) either make this case an exception
or 2) make the code that appends all remaining table columns optional.
I may be missing something as that code is there for a reason, but I can't see
why?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira