ableegoldman commented on a change in pull request #9186:
URL: https://github.com/apache/kafka/pull/9186#discussion_r485218625



##########
File path: 
streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamKTableJoinProcessor.java
##########
@@ -58,22 +58,23 @@ public void init(final ProcessorContext context) {
 
     @Override
     public void process(final K1 key, final V1 value) {
-        // we do join iff keys are equal, thus, if key is null we cannot join 
and just ignore the record
-        // If {@code keyMapper} returns {@code null} it implies there is no 
match,
+        // We allow null keys unless {@code keyMapper} returns {@code null} 
and we ignore it as invalid.

Review comment:
       Well, if `mappedKey` is null then there can't be a match in the global 
table since we can't do a lookup with a null key. I think what @mjsax means 
here (correct me if wrong) is just that we could phrase it a bit differently to 
say something like
   ```
   // If the mappedKey is null, we ignore it as invalid. This should never 
happen for KTables since keyMapper 
   // just returns the key, but for GlobalKTables a non-null key can result in 
a null mappedKey. Since there 
   // can't be a match for a null mappedKey, we drop it
   ```
   
   ...or something. Thoughts?




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


Reply via email to