[ 
https://issues.apache.org/jira/browse/HADOOP-4955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665429#action_12665429
 ] 

Enis Soztutar commented on HADOOP-4955:
---------------------------------------

Somwtimes the names of the fields are not available, in which case we send a 
new String[] with null values in it. Could you change the patch to first check 
this : 
{code}
if(fieldNames == null || fieldNames.length < 0 )
  throw new IllegalArgumentException("Fields names cannot be empty");

if(fieldNames[0] != null) {
    query.append(" (");
     .....
}
{code}

> Make DBOutputFormat us column names from setOutput(...)
> -------------------------------------------------------
>
>                 Key: HADOOP-4955
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4955
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>    Affects Versions: 0.19.0
>         Environment: Ubuntu 8.04, Java 6, MySQL 5.0 (most likely not relevant)
>            Reporter: Kevin Peterson
>         Attachments: patch.txt
>
>
> In org.apache.hadoop.mapred.lib.db.DBOutputFormat, the supplied names of the 
> columns are not used for inserting values. The column names supplied to 
> DBOutputFormat.setOutput(JobConf, String, String...) are used to determine 
> the number of values to insert, but the order is dictated by the table 
> definition of the underlying database. This affects the correct indices for 
> DBWritable.write(PreparedStatement).
> I will attach a patch that correctly maps these values.
> I am characterizing this as a bug rather than an improvement because there 
> may be existing code which implicitly relied on DBOutputFormat ignoring the 
> supplied table names.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to