You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by Sowmya Ramesh <sr...@hortonworks.com> on 2016/01/27 23:11:20 UTC

Review Request 42874: Cannot import table from Oracle with column with spaces in name

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42874/
-----------------------------------------------------------

Review request for Sqoop.


Bugs: SQOOP-2737
    https://issues.apache.org/jira/browse/SQOOP-2737


Repository: sqoop-trunk


Description
-------

When importing database containing table(s) with spaces in column name(s) following error is displayed:

When importing database containing table(s) with spaces in column name(s) following error is displayed:

Error: java.io.IOException: SQLException in nextKeyValue
	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277)
	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:553)
	at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
	at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
	at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111)
	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235)
	... 11 more


As a enterprise user I would expect that I can import tables with spaces in a column name with no issues.


Diffs
-----

  src/java/org/apache/sqoop/manager/OracleManager.java d088265 
  src/java/org/apache/sqoop/manager/oracle/OraOopConnManager.java 9d74625 
  src/java/org/apache/sqoop/manager/oracle/OraOopOracleQueries.java 82e4266 
  src/java/org/apache/sqoop/manager/oracle/OraOopOutputFormatBase.java 8f7016a 
  src/java/org/apache/sqoop/manager/oracle/OracleUtils.java PRE-CREATION 
  src/java/org/apache/sqoop/mapreduce/db/OracleDBRecordReader.java 9058a55 

Diff: https://reviews.apache.org/r/42874/diff/


Testing
-------

Manual testing


Thanks,

Sowmya Ramesh


Re: Review Request 42874: Cannot import table from Oracle with column with spaces in name

Posted by Venkat Ranganathan <n....@live.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42874/#review119752
-----------------------------------------------------------



Will commit after making sure tests pass

- Venkat Ranganathan


On Feb. 18, 2016, 10:14 a.m., Sowmya Ramesh wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/42874/
> -----------------------------------------------------------
> 
> (Updated Feb. 18, 2016, 10:14 a.m.)
> 
> 
> Review request for Sqoop.
> 
> 
> Bugs: SQOOP-2737
>     https://issues.apache.org/jira/browse/SQOOP-2737
> 
> 
> Repository: sqoop-trunk
> 
> 
> Description
> -------
> 
> When importing database containing table(s) with spaces in column name(s) following error is displayed:
> 
> When importing database containing table(s) with spaces in column name(s) following error is displayed:
> 
> Error: java.io.IOException: SQLException in nextKeyValue
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277)
> 	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:553)
> 	at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
> 	at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
> 	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
> 	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
> 	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
> 	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
> 	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
> 
> 	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
> 	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
> 	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
> 	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
> 	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
> 	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
> 	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
> 	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
> 	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
> 	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
> 	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
> 	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
> 	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111)
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235)
> 	... 11 more
> 
> 
> As a enterprise user I would expect that I can import tables with spaces in a column name with no issues.
> 
> 
> Diffs
> -----
> 
>   src/java/org/apache/sqoop/manager/OracleManager.java d088265 
>   src/java/org/apache/sqoop/manager/oracle/OraOopConnManager.java 9d74625 
>   src/java/org/apache/sqoop/manager/oracle/OraOopOracleQueries.java 82e4266 
>   src/java/org/apache/sqoop/manager/oracle/OraOopOutputFormatBase.java 8f7016a 
>   src/java/org/apache/sqoop/manager/oracle/OracleUtils.java PRE-CREATION 
>   src/java/org/apache/sqoop/mapreduce/db/OracleDBRecordReader.java 9058a55 
> 
> Diff: https://reviews.apache.org/r/42874/diff/
> 
> 
> Testing
> -------
> 
> Manual testing
> 
> 
> Thanks,
> 
> Sowmya Ramesh
> 
>


Re: Review Request 42874: Cannot import table from Oracle with column with spaces in name

Posted by Venkat Ranganathan <n....@live.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42874/#review119751
-----------------------------------------------------------


Ship it!




Ship It!

- Venkat Ranganathan


On Feb. 18, 2016, 10:14 a.m., Sowmya Ramesh wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/42874/
> -----------------------------------------------------------
> 
> (Updated Feb. 18, 2016, 10:14 a.m.)
> 
> 
> Review request for Sqoop.
> 
> 
> Bugs: SQOOP-2737
>     https://issues.apache.org/jira/browse/SQOOP-2737
> 
> 
> Repository: sqoop-trunk
> 
> 
> Description
> -------
> 
> When importing database containing table(s) with spaces in column name(s) following error is displayed:
> 
> When importing database containing table(s) with spaces in column name(s) following error is displayed:
> 
> Error: java.io.IOException: SQLException in nextKeyValue
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277)
> 	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:553)
> 	at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
> 	at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
> 	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
> 	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
> 	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
> 	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
> 	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
> 
> 	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
> 	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
> 	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
> 	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
> 	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
> 	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
> 	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
> 	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
> 	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
> 	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
> 	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
> 	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
> 	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111)
> 	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235)
> 	... 11 more
> 
> 
> As a enterprise user I would expect that I can import tables with spaces in a column name with no issues.
> 
> 
> Diffs
> -----
> 
>   src/java/org/apache/sqoop/manager/OracleManager.java d088265 
>   src/java/org/apache/sqoop/manager/oracle/OraOopConnManager.java 9d74625 
>   src/java/org/apache/sqoop/manager/oracle/OraOopOracleQueries.java 82e4266 
>   src/java/org/apache/sqoop/manager/oracle/OraOopOutputFormatBase.java 8f7016a 
>   src/java/org/apache/sqoop/manager/oracle/OracleUtils.java PRE-CREATION 
>   src/java/org/apache/sqoop/mapreduce/db/OracleDBRecordReader.java 9058a55 
> 
> Diff: https://reviews.apache.org/r/42874/diff/
> 
> 
> Testing
> -------
> 
> Manual testing
> 
> 
> Thanks,
> 
> Sowmya Ramesh
> 
>


Re: Review Request 42874: Cannot import table from Oracle with column with spaces in name

Posted by Sowmya Ramesh <sr...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42874/
-----------------------------------------------------------

(Updated Feb. 18, 2016, 6:14 p.m.)


Review request for Sqoop.


Changes
-------

Handle case where len(<SCHEMA.TABLENAME>) > 30 to avoid "ORA-00972: identifier is too long" error.

Added logic to handle escaping of tablename for cases where SCHEMA.TABLENAME is passed. escapeIdentifier utility method will split on "." and quote each identifier.


Bugs: SQOOP-2737
    https://issues.apache.org/jira/browse/SQOOP-2737


Repository: sqoop-trunk


Description
-------

When importing database containing table(s) with spaces in column name(s) following error is displayed:

When importing database containing table(s) with spaces in column name(s) following error is displayed:

Error: java.io.IOException: SQLException in nextKeyValue
	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277)
	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:553)
	at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
	at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
	at org.apache.sqoop.mapreduce.db.DBRecordReader.executeQuery(DBRecordReader.java:111)
	at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:235)
	... 11 more


As a enterprise user I would expect that I can import tables with spaces in a column name with no issues.


Diffs (updated)
-----

  src/java/org/apache/sqoop/manager/OracleManager.java d088265 
  src/java/org/apache/sqoop/manager/oracle/OraOopConnManager.java 9d74625 
  src/java/org/apache/sqoop/manager/oracle/OraOopOracleQueries.java 82e4266 
  src/java/org/apache/sqoop/manager/oracle/OraOopOutputFormatBase.java 8f7016a 
  src/java/org/apache/sqoop/manager/oracle/OracleUtils.java PRE-CREATION 
  src/java/org/apache/sqoop/mapreduce/db/OracleDBRecordReader.java 9058a55 

Diff: https://reviews.apache.org/r/42874/diff/


Testing
-------

Manual testing


Thanks,

Sowmya Ramesh