> On Aug. 5, 2014, 7:27 p.m., Abraham Elmahrek wrote:
> > src/java/org/apache/sqoop/mapreduce/SQLServerExportDBExecThread.java, line 
> > 128
> > <https://reviews.apache.org/r/24242/diff/1/?file=650524#file650524line128>
> >
> >     Should this have a semicolon at the end of it?
> >     
> >     Also, does it make any sense to separate this out into its own 
> > statement?
> 
> Keegan Witt wrote:
>     I'm not sure I follow.  If I add a semicolon, this will be two statements 
> in a single PreparedStatement (which shouldn't be done).  I'd be OK breaking 
> them into separate PreparedStatements, but I didn't see where that would be 
> done.  The AsyncSqlRecordWriter interface just has getPreparedStatement() 
> which returns a single PreparedStatement, not a collection of 
> PreparedStatements to run.  What am I missing?
> 
> Abraham Elmahrek wrote:
>     Good points.
>     
>     It seems like there is a "configureConnection" method that can be 
> overriden in the parent class "SQLServerAsyncDBExecThread". Would that work?

This could work if you could tell SQL Sever through a connection parameter 
passed to SQLServerDriver or some property set on SQLServerConnection, but I 
didn't see a method that would do that.  Suggestions?


> On Aug. 5, 2014, 7:27 p.m., Abraham Elmahrek wrote:
> > src/java/org/apache/sqoop/mapreduce/sqlserver/SqlServerExportBatchOutputFormat.java,
> >  line 67
> > <https://reviews.apache.org/r/24242/diff/1/?file=650525#file650525line67>
> >
> >     Should this have a semicolon at the end of it?
> >     
> >     Also, does it make any sense to separate this out into its own 
> > statement?
> 
> Abraham Elmahrek wrote:
>     It seems like this one can be placed in the 
> "SqlServerExportBatchRecordWriter" constructor. Would that work?

This might be possible if we executed the SET IDENTITY_INSERT once per 
connection.  When I tried this, however, it didn't seem to persist between 
PreparedStatements.  I also tried doing a PreparedStatement.addBatch("SET 
IDENTITY_INSERT...") before the executeBatch() is called.  This resulted in 
"com.microsoft.sqlserver.jdbc.SQLServerException: The method addBatch() cannot 
take arguments on a PreparedStatement or CallableStatement."  Do you have an 
idea about how this could be done specifically?


- Keegan


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


On Aug. 4, 2014, 1:48 p.m., Keegan Witt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/24242/
> -----------------------------------------------------------
> 
> (Updated Aug. 4, 2014, 1:48 p.m.)
> 
> 
> Review request for Sqoop.
> 
> 
> Repository: sqoop-trunk
> 
> 
> Description
> -------
> 
> Adds an extra arg for SQL Server that runs SET IDENTITY_INSERT <table> ON 
> before exporting the data.
> 
> 
> Diffs
> -----
> 
>   src/docs/user/connectors.txt bba946a 
>   src/java/org/apache/sqoop/manager/SQLServerManager.java 534c0cc 
>   src/java/org/apache/sqoop/mapreduce/SQLServerExportDBExecThread.java 
> 1810ba8 
>   
> src/java/org/apache/sqoop/mapreduce/sqlserver/SqlServerExportBatchOutputFormat.java
>  cc69d77 
> 
> Diff: https://reviews.apache.org/r/24242/diff/
> 
> 
> Testing
> -------
> 
> Tested that change enables inserts on tables with identity (with SQL Server 
> 2005).
> 
> 
> Thanks,
> 
> Keegan Witt
> 
>

Reply via email to