title: leftOuterJoin throws TableException: Unsupported join type 'LEFT'
body: <p>I'm trying to run a left outer join on two tables and convert the results to a DataStream.  </p>
  
  <p>All the joins I've done before using flink have been inner joins, and I have always followed the join with a <code>.toRetractStream[MyCaseClass](someQueryConfig)</code>.  However, with the introduction of null values due to the left join, my understanding from the <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/table/common.html#convert-a-table-into-a-datastream-or-dataset" rel="nofollow noreferrer">flink docs</a> is that I can no longer use case classes because they don't support null values when converting a table to a DataStream.  </p>
  
  <p>So, I'm trying to accomplish this using a POJO. Here is my code:</p>
  
  <pre><code>class EnrichedTaskUpdateJoin(val enrichedTaskId: String, val enrichedTaskJobId: String, val enrichedTaskJobDate: String, val enrichedTaskJobMetadata: Json, val enrichedTaskStartedAt: String, val enrichedTaskTaskMetadata: Json, val taskUpdateMetadata: Json = Json.Null) {}
  
  val qConfig = tableEnv.queryConfig
  qConfig.withIdleStateRetentionTime(IDLE_STATE_RETENTION_TIME)
  
  val updatedTasksUpsertTable = enrichedTasksUpsertTable
    .leftOuterJoin(taskUpdatesUpsertTable, 'enrichedTaskId === 'taskUpdateId)
    .select(
      'enrichedTaskId,
      'enrichedTaskJobId,
      'enrichedTaskJobDate,
      'enrichedTaskJobMetadata,
      'enrichedTaskStartedAt,
      'enrichedTaskTaskMetadata,
      'taskUpdateMetadata
    )
  
  val updatedEnrichedTasksStream: KeyedStream[String, String] = updatedTasksUpsertTable
    .toAppendStream[EnrichedTaskUpdateJoin](qConfig)
    .map(toEnrichedTask(_))
    .map(encodeTask(_))
    .keyBy(x =&gt; parse(x).getOrElse(Json.Null).hcursor.get[String]("id").getOrElse(""))
  </code></pre>
  
  <p>This compiles just fine, but when I try to run it, I get <code>org.apache.flink.table.api.TableException: Unsupported join type 'LEFT'. Currently only non-window inner joins with at least one equality predicate are supported</code>. However, according to <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/table/tableApi.html#joins" rel="nofollow noreferrer">these docs</a>, it seems like I should be able to run a left join.  It also seems worth noting that the error gets thrown from the <code>.toAppendStream[EnrichedTaskUpdateJoin](qConfig)</code>.
  I thought perhaps the <code>non-window</code> portion of the error implied that my idle state retention time was a problem, so I took the query config out, but got the same error.</p>
  
  <p>Hopefully this has enough context, but if I need to add anything else please let me know. Also, I'm running flink 1.5-SNAPSHOT and Circe for json parsing.  I'm also quite new to scala, so it's very possible that this is just some dumb syntax error.</p>