sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raphael Nguyen (JIRA)" <j...@apache.org>
Subject [jira] [Created] (SQOOP-3207) Codegen is using column labels rather than column names
Date Wed, 28 Jun 2017 22:59:00 GMT
Raphael Nguyen created SQOOP-3207:
-------------------------------------

             Summary: Codegen is using column labels rather than column names
                 Key: SQOOP-3207
                 URL: https://issues.apache.org/jira/browse/SQOOP-3207
             Project: Sqoop
          Issue Type: Bug
          Components: codegen
    Affects Versions: 1.4.5
         Environment: * Red Hat Enterprise Linux Server release 6.2 (Santiago)
* Teradata 14.10.07.21
* Sqoop 1.4.6

            Reporter: Raphael Nguyen
            Priority: Minor


We are using codegen to create external Hive tables.

Sqoop 1.4.4 was using getColumnName() in *SqlManager.java* and *ResultSetPrinter.java*. It
looks like [SQOOP-585|https://issues.apache.org/jira/browse/SQOOP-585] does the opposite,
using getColumnLabel() first.

The issue can be seen when column labels (aliases) contain spaces, which is often the case
for Teradata sources. When running codegen, the resulting Hive create statement will persist
the spaces in the column labels as column names. The desired behavior is to use the column
names instead.

*Example:*
{code:java}
CREATE TABLE IF NOT EXISTS `null` ( `FIRST NAME` STRING, `LAST NAME` STRING) COMMENT 'Imported
by sqoop on 2017/06/28 14:15:35' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED
BY '\012' STORED AS TEXTFILE;
{code}

*Sqoop 1.4.4 Example:*
{code:java}
CREATE TABLE IF NOT EXISTS `null` ( `FIRST_NAME` STRING, `LAST_NAME` STRING) COMMENT 'Imported
by sqoop on 2017/06/28 14:15:35' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED
BY '\012' STORED AS TEXTFILE;
{code}

*Codegen example:*
{code:java}
sqoop codegen -libjars ../lib/tdgssconfig-1.5.1.jar --driver com.teradata.jdbc.TeraDriver
--connect jdbc:teradata://my_hostname/DATABASE=my_db --username my_username --password my_password
--outdir /users/raphnguyen/my_table/src_generated --bindir /users/raphnguyen/my_table/jar_generated
--query "SELECT * FROM MY_DB.MY_TABLE WHERE \$CONDITIONS" --hive-import
{code}

Related: [SQOOP-585|https://issues.apache.org/jira/browse/SQOOP-585]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message