asfimport opened a new issue, #408:
URL: https://github.com/apache/arrow-java/issues/408

   `JdbcToArrowUtils::updateVector(VarCharVector, String, boolean, int)` does 
not release the memory that it allocates for the `NullableVarCharHolder`. This 
can be verified by changing the first lines of 
`JdbcToArrowTest::testJdbcToArrowValues()` to the following:
   ```java
   
   RootAllocator allocator = new RootAllocator(Integer.MAX_VALUE);
   VectorSchemaRoot root = JdbcToArrow.sqlToArrow(conn, table.getQuery(), 
allocator, Calendar.getInstance());
   testDataSets(root);
   root.close();
   assertEquals(allocator.getAllocatedMemory(), 0);
   ```
    
   
   The leak can be fixed by closing the buffer in `updateVector`. However, I 
would propose to not use the `NullableVarCharHolder` in the first place because 
it creates an unnecessary copy of the string. Instead, I would use 
`BaseVariableWidthVector::setSafe(int index, byte[] value)` and 
`BaseVariableWidthVector::setNull(int index)` directly.
   
   In addition, I would propose to check for leaks in JdbcToArrowTest.
   
   I am willing to create a patch, so please let me know what approach is 
preferred.
   
   **Reporter**: [Johannes 
Luong](https://issues.apache.org/jira/browse/ARROW-5536) / @jmaschad
   
   <sub>**Note**: *This issue was originally created as 
[ARROW-5536](https://issues.apache.org/jira/browse/ARROW-5536). Please see the 
[migration documentation](https://github.com/apache/arrow/issues/14542) for 
further details.*</sub>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to