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]