Michael Pigott created ARROW-4144:
-------------------------------------

             Summary: [Java] Arrow-to-JDBC
                 Key: ARROW-4144
                 URL: https://issues.apache.org/jira/browse/ARROW-4144
             Project: Apache Arrow
          Issue Type: Improvement
          Components: Java
            Reporter: Michael Pigott


ARROW-1780 reads a query from a JDBC data source and converts the ResultSet to 
an Arrow VectorSchemaRoot.  However, there is no built-in adapter for writing 
an Arrow VectorSchemaRoot back to the database.

ARROW-3966 adds JDBC field metadata:
 * The Catalog Name
 * The Table Name
 * The Field Name
 * The Field Type

We can use this information to ask for the field information from the database 
via the 
[DatabaseMetaData|https://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html]
 object.  We can then create INSERT or UPDATE statements based on the [list of 
primary 
keys|https://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getPrimaryKeys(java.lang.String,%20java.lang.String,%20java.lang.String)]
 in the table:
 * If the value in the VectorSchemaRoot corresponding to the primary key is 
NULL, insert that record into the database.
 * If the value in the VectorSchemaRoot corresponding to the primary key is not 
NULL, update the existing record in the database.

We can also perform the same data conversion in reverse based on the field 
types queried from the database.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to