big-andy-coates commented on a change in pull request #9156: URL: https://github.com/apache/kafka/pull/9156#discussion_r489538195
########## File path: streams/src/main/java/org/apache/kafka/streams/kstream/internals/KTableImpl.java ########## @@ -182,6 +182,8 @@ public String queryableStoreName() { final KTableProcessorSupplier<K, V, V> processorSupplier = new KTableFilter<>(this, predicate, filterNot, queryableStoreName); + processorSupplier.enableSendingOldValues(true); Review comment: > If the filter result is materialized, we don't care if he upstream is sending old values or not. However, if the filter is stateless, as a side effect, we also need to tell upstream to send old values. That's not how the code was working. It always asked the parent to send old values: ```java @Override public void enableSendingOldValues() { parent.enableSendingOldValues(); sendOldValues = true; } ``` Do we want to change this as part of this PR to only call `parent.enableSendingOldValues` is the filter is _not_ materialized? ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org