Commits


Roee Shlomo authored and Sutou Kouhei committed e379ee1f5a3
ARROW-12965: [Java] C Data Interface implementation Experimental C Data Interface support in Arrow Java for 64bit systems. Roundtrip example with dictionaries: ```java void roundtrip(FieldVector vector, DictionaryProvider provider) { // Consumer allocates empty structures try (ArrowSchema consumerArrowSchema = ArrowSchema.allocateNew(allocator); ArrowArray consumerArrowArray = ArrowArray.allocateNew(allocator)) { // Producer creates structures from existing memory pointers try (ArrowSchema arrowSchema = ArrowSchema.wrap(consumerArrowSchema.memoryAddress()); ArrowArray arrowArray = ArrowArray.wrap(consumerArrowArray.memoryAddress())) { // Producer exports vector into the C Data Interface structures Data.exportVector(allocator, vector, provider, arrowArray, arrowSchema); } // Consumer imports vector (and dictionaries) try (CDataDictionaryProvider dictionaries = new CDataDictionaryProvider(); FieldVector imported = Data.importVector(allocator, consumerArrowArray, consumerArrowSchema, dictionaries)) { // Do something with the imported vector } } } ``` Closes #11067 from roee88/java-c-data-interface Lead-authored-by: Roee Shlomo <roee88@gmail.com> Co-authored-by: roee88 <roee88@gmail.com> Co-authored-by: Doron Chen <cdoron@il.ibm.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>