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

   ### Describe the usage question you have. Please include as many useful 
details as  possible.
   
   
   Hi community,
   
   I have a trying to modify data buffers of string column.
    if i print the buffer readable bytes after ` buffers.set(index, 
compressedBuf); `, i see the right value.
   ```
    List<ArrowBuf> buffers = fieldVector.getFieldBuffers();
                       int index = buffers.size() - 1;
                       ArrowBuf compressedBuf = null;
                       ArrowBuf originalBuf = buffers.get(index);
                       ByteBuffer originalBuffer = originalBuf.nioBuffer(0, 
(int) originalBuf.readableBytes());
   
                       // Compress the buffer using LZ4
                       byte[] originalBytes = new 
byte[originalBuffer.remaining()];
                       System.out.println("This is buffer id: "+ index + " 
originalbytes: "+ originalBuf.readableBytes());
                       originalBuffer.get(originalBytes);
   
                       int maxCompressedLength = 
compressor.maxCompressedLength(originalBytes.length);
                       byte[] compressedBytes = new byte[maxCompressedLength];
                       int compressedLength = 
compressor.compress(originalBytes, 0, originalBytes.length, compressedBytes, 0, 
maxCompressedLength);
   
                       // Allocate a new ArrowBuf for the compressed data
                       compressedBuf = allocator.buffer(compressedLength);
   
                       compressedBuf.writeBytes(compressedBytes, 0, 
compressedLength);
                       compressedBuf.writerIndex(compressedLength);
                       System.out.println("This is buffer id: "+ index+ " 
compressedbytes: "+ compressedBuf.readableBytes());
   
                       buffers.set(index, compressedBuf);  // Replace with 
compressed buffer
   
   ```
   
   
   When i update my fieldvector.
   
   
   ```
   int nullCount = fieldVector.getNullCount();  // Get the null count
                       ArrowFieldNode fieldNode = new 
ArrowFieldNode(fieldVectorValueCount, nullCount);
                       ArrowBuf validityBuffer = 
fieldVector.getValidityBuffer(); // Assuming it exists
                       ArrowBuf offsetBuffer = fieldVector.getOffsetBuffer(); 
// Assuming it exists
   
                       // Update FieldVector with the new compressed buffers
                       fieldVector.clear();  // Clear existing buffers (to 
prevent memory leaks)
                       
fieldVector.loadFieldBuffers(fieldNode,java.util.Arrays.asList(validityBuffer, 
offsetBuffer, compressedBuf));  // Load the new (compressed) buffers
                       fieldVector.setValueCount(fieldVectorValueCount);  // 
Reset value count after buffer replacement
                       Field field1 = fieldVector.getField();
   ```
   
   and i check the buffers again then buffers reflect old value.
   
   please advise .
   
   ### Component(s)
   
   Java


-- 
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