[ https://issues.apache.org/jira/browse/MAPREDUCE-6246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ramtin updated MAPREDUCE-6246: ------------------------------ Description: In DBOutputFormat class there is constructQuery method that generates "INSERT INTO" statement with semicolon(;;)) at the end. Semicolon is ANSI SQL-92 standard character for a statement terminator but this feature is disabled(OFF) as a default settings in IBM DB2. Although by using -t we can turn it ON for db2. (http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html?cp=SSEPGG_9.7.0%2F3-6-2-0-2). But there are some products that already built on top of this default setting (OFF) so by turning ON this feature make them error prone. I changed the current DBOutputFormat class by checking the product name from connection object to see if it is DB2 then generates "INSERT INTO" command without semicolon(;). This technique is already used in DBInputFormat class for generating different "SELECT" statements for Oracle and MySQL databases. was: In DBOutputFormat class there is constructQuery method that generates "INSERT INTO" statement with semicolon(;) at the end. Semicolon is ANSI SQL-92 standard character for a statement terminator but this feature is disabled(OFF) as a default settings in IBM DB2. Although by using -t we can turn it ON for db2. (http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html?cp=SSEPGG_9.7.0%2F3-6-2-0-2). But there are some products that already built on top of this default setting (OFF) so by turning ON this feature make them error prone. I changed the current DBOutputFormat class by checking the product name from connection object to see if it is DB2 then generates "INSERT INTO" command without semicolon(;). This technique is already used in DBInputFormat class for generating different "SELECT" statements for Oracle and MySQL databases. > DBOutputFormat.java appending extra semicolon to query which is incompatible > with DB2 > ------------------------------------------------------------------------------------- > > Key: MAPREDUCE-6246 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6246 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: mrv1, mrv2 > Affects Versions: 2.4.1 > Environment: OS: RHEL 5.x, RHEL 6.x, SLES 11.x > Platform: xSeries, pSeries > Browser: Firefox, IE > Security Settings: No Security, Flat file, LDAP, PAM > File System: HDFS, GPFS FPO > Reporter: ramtin > Assignee: ramtin > Original Estimate: 24h > Remaining Estimate: 24h > > In DBOutputFormat class there is constructQuery method that generates "INSERT > INTO" statement with semicolon(;;)) at the end. > Semicolon is ANSI SQL-92 standard character for a statement terminator but > this feature is disabled(OFF) as a default settings in IBM DB2. > Although by using -t we can turn it ON for db2. > (http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html?cp=SSEPGG_9.7.0%2F3-6-2-0-2). > But there are some products that already built on top of this default > setting (OFF) so by turning ON this feature make them error prone. > I changed the current DBOutputFormat class by checking the product name from > connection object to see if it is DB2 then generates "INSERT INTO" command > without semicolon(;). > This technique is already used in DBInputFormat class for generating > different "SELECT" statements for Oracle and MySQL databases. -- This message was sent by Atlassian JIRA (v6.3.4#6332)