twalthr commented on code in PR #27508:
URL: https://github.com/apache/flink/pull/27508#discussion_r2852328126


##########
flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/join/stream/keyselector/AttributeBasedJoinKeyExtractor.java:
##########
@@ -288,11 +311,13 @@ private RowData buildKeyRowFromJoinedRow(
         for (int i = 0; i < keyExtractors.size(); i++) {
             keyRow.setField(i, 
keyExtractors.get(i).getLeftSideKey(joinedRowData));
         }
-        return keyRow;
+        return keySerializer.toBinaryRow(keyRow).copy();

Review Comment:
   I don't think that checking the state backend is considered a bad design. We 
are doing this for various operators nowadays e.g. the new 
SinkUpsertMaterializerV2. The state backend endpoint is new but could improve 
the performance of the engine quite significantly. Our SQL operators should be 
highly specialized/optimized for performance. @gustavodemorais how could a 
`shouldReuseRow` flag help? For RocksDB we can also rely on the serialization 
of the statement backend, for heap we need to copy.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to