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());
}