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

(Updated July 29, 2013, 1:37 a.m.)


Review request for Sqoop.


Changes
-------

Actually, I've been thinking about this a bit more, and have come up with the 
attached. Instead of re-writing the SQL INSERT statement to insert casts, it 
just uses the postgres driver's generic object class, 
org.postgresql.util.PGobject, in the generated code. The JdbcWritableBridge 
passes these PGobjects to and from a ResultSet's readObject / writeObject 
methods without needing to modifying them. The only downside to this approach 
is that ClassWriter uses the implementation-specific PGobject class. Can you 
think of a way around this? Maybe the ConnManager subclasses should know how to 
generate code for their database's object types?


Repository: sqoop-trunk


Description
-------

The patch adds a PostgresqlExportJob that replaces the OutputFormat (if needed) 
with a PostgresqlExportOutputFormat that inserts casts into the generated SQL 
statement (e.g. insert into mytable values (?, ?::inet, ?)). The patch also 
consolidates the various functions on ConnManager that return SQL type ints and 
type names into just one for each. This means the chunks of code in various 
parts of the codebase that select which of the three (former) methods to call 
can be replaced with a single call - and the call "routing" logic only appears 
in one place (ConnManager).


Diffs (updated)
-----

  src/java/com/cloudera/sqoop/lib/JdbcWritableBridge.java 316547f 
  src/java/org/apache/sqoop/lib/JdbcWritableBridge.java afde585 
  src/java/org/apache/sqoop/manager/PostgresqlManager.java bd882b9 
  src/java/org/apache/sqoop/orm/ClassWriter.java 1bd2a41 
  src/test/com/cloudera/sqoop/manager/PostgresqlExportTest.java 0ac4599 

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


Testing
-------

I've added two cases to PostgresqlExportTest and tested them against a 9.3 
database.


Thanks,

Nick White

Reply via email to