Github user fhueske commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4625#discussion_r137227189
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/nodes/datastream/DataStreamWindowJoin.scala
 ---
    @@ -184,4 +195,54 @@ class DataStreamWindowJoin(
             .returns(returnTypeInfo)
         }
       }
    +
    +  def createRowTimeInnerJoinFunction(
    +    leftDataStream: DataStream[CRow],
    +    rightDataStream: DataStream[CRow],
    +    joinFunctionName: String,
    +    joinFunctionCode: String,
    +    leftKeys: Array[Int],
    +    rightKeys: Array[Int]): DataStream[CRow] = {
    +
    +    val returnTypeInfo = CRowTypeInfo(schema.typeInfo)
    +
    +    val rowTimeInnerJoinFunc = new TimeBoundedStreamInnerJoin(
    +      leftLowerBound,
    +      leftUpperBound,
    +      0L,
    +      leftSchema.typeInfo,
    +      rightSchema.typeInfo,
    +      joinFunctionName,
    +      joinFunctionCode,
    +      leftTimeIdx,
    +      rightTimeIdx,
    +      JoinTimeIndicator.ROWTIME
    +    )
    +
    +    if (!leftKeys.isEmpty) {
    +      leftDataStream
    +        .connect(rightDataStream)
    +        .keyBy(leftKeys, rightKeys)
    +        .transform(
    +          "rowTimeInnerJoinFunc",
    +          returnTypeInfo,
    +          new KeyedCoProcessOperatorWithWatermarkDelay[CRow, CRow, CRow, 
CRow](
    +            rowTimeInnerJoinFunc,
    +            rowTimeInnerJoinFunc.getMaxOutputDelay)
    --- End diff --
    
    OK, let's keep `getMaxOutputDelay()` but we should improve the 
documentation of the method and make clear that this returns the maximum 
interval between receiving a row and emitting it (as part of a joined row).


---

Reply via email to