fhueske commented on code in PR #28737:
URL: https://github.com/apache/flink/pull/28737#discussion_r3616239923


##########
docs/content/docs/sql/reference/queries/joins.md:
##########
@@ -300,6 +300,101 @@ The main difference between above Temporal Table DDL and 
Temporal Table Function
 - The temporal table DDL can be defined in SQL but temporal table function can 
not;
 - Both temporal table DDL and temporal table function support temporal join 
versioned table, but only temporal table function can temporal join the latest 
version of any table/view.
 
+LATERAL SNAPSHOT Join
+--------------
+
+{{< label Streaming >}} {{< label Batch >}}
+
+A `LATERAL SNAPSHOT` join is a *stream enrichment* join that augments an 
append-only table with the current state of an updating table.
+As in the [temporal joins](#temporal-joins), the enriched (left) input is 
called the *probe side* and the enriching (right) input is called the *build 
side*.
+Every probe-side row is joined with the build-side state that is current at 
the time the row is processed.
+

Review Comment:
   Do you mean a SQL query or an input -> output example?



##########
docs/content/docs/sql/reference/queries/joins.md:
##########
@@ -300,6 +300,101 @@ The main difference between above Temporal Table DDL and 
Temporal Table Function
 - The temporal table DDL can be defined in SQL but temporal table function can 
not;
 - Both temporal table DDL and temporal table function support temporal join 
versioned table, but only temporal table function can temporal join the latest 
version of any table/view.
 
+LATERAL SNAPSHOT Join
+--------------
+
+{{< label Streaming >}} {{< label Batch >}}
+
+A `LATERAL SNAPSHOT` join is a *stream enrichment* join that augments an 
append-only table with the current state of an updating table.
+As in the [temporal joins](#temporal-joins), the enriched (left) input is 
called the *probe side* and the enriching (right) input is called the *build 
side*.
+Every probe-side row is joined with the build-side state that is current at 
the time the row is processed.
+
+This is the same mode of operation as the [processing-time temporal 
join](#processing-time-temporal-join), which also joins each probe-side row 
against the latest build-side state.
+However, the processing-time temporal join has been disabled for Flink SQL due 
to a fundamental limitation. 
+The processing-time temporal join starts joining immediately when the query is 
started: early probe-side rows are joined against whatever build-side rows 
happen to have been loaded so far. 
+Right after query start-up, the build side is typically still incomplete, so 
early probe-side rows may be enriched with missing or stale data, and the 
result depends on the order in which the two inputs are read.
+A `LATERAL SNAPSHOT` join addresses this problem by first loading the build 
side up to a well-defined point in time (the *load phase*) before it starts 
joining (the *join phase*).

Review Comment:
   good idea, thanks



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