This is an automated email from the ASF dual-hosted git repository.

apolovtsev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 4db00b0b477 IGNITE-26195 Reduce the number of lambda allocations in 
BinaryRowConverter (#6412)
4db00b0b477 is described below

commit 4db00b0b47734316ca7022d762772eb6b685ee1a
Author: Alexander Polovtcev <[email protected]>
AuthorDate: Wed Aug 13 10:42:53 2025 +0300

    IGNITE-26195 Reduce the number of lambda allocations in BinaryRowConverter 
(#6412)
---
 .../ignite/internal/schema/BinaryRowConverter.java  | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git 
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/BinaryRowConverter.java
 
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/BinaryRowConverter.java
index 15926de7b0e..2cd3a4c4881 100644
--- 
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/BinaryRowConverter.java
+++ 
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/BinaryRowConverter.java
@@ -80,19 +80,22 @@ public class BinaryRowConverter implements ColumnsExtractor 
{
             parser.fetch(columnIndex, stats);
         }
 
-        // Now compose the tuple.
-        BinaryTupleBuilder builder = new 
BinaryTupleBuilder(dstSchema.elementCount(), stats.estimatedValueSize);
+        var builder = new BinaryTupleBuilder(dstSchema.elementCount(), 
stats.estimatedValueSize);
+
+        Sink builderSink = (index, begin, end) -> {
+            if (begin == end) {
+                builder.appendNull();
+            } else {
+                builder.appendElementBytes(tupleBuffer, begin, end - begin);
+            }
+        };
 
+        // Now compose the tuple.
         for (int elementIndex = 0; elementIndex < dstSchema.elementCount(); 
elementIndex++) {
             int columnIndex = dstSchema.columnIndex(elementIndex);
-            parser.fetch(columnIndex, (index, begin, end) -> {
-                if (begin == end) {
-                    builder.appendNull();
-                } else {
-                    builder.appendElementBytes(tupleBuffer, begin, end - 
begin);
-                }
-            });
+            parser.fetch(columnIndex, builderSink);
         }
+
         return new BinaryTuple(dstSchema.elementCount(), builder.build());
     }
 

Reply via email to