[
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.