Hi, Konstantin

> 
> 1) A  "Versioned Temporal Table DDL on source" can only be joined on the
> PRIMARY KEY attribute, correct?
Yes, the PRIMARY KEY would be join key.

> 
> 2) Isn't it the time attribute in the ORDER BY clause of the VIEW definition 
> that defines
> whether a event-time or processing time temporal table join is used?

I think event-time or processing-time temporal table join depends on fact 
table’s time attribute in temporal join rather than from temporal table side, 
the event-time or processing time in temporal table is just used to split the 
validity period of versioned snapshot of temporal table. The  processing time 
attribute is not  necessary for temporal table without version, only the 
primary key is required, the following VIEW is also valid for temporal table 
without version.
CREATE VIEW latest_rates AS
SELECT currency, LAST_VALUE(rate)            -- only keep the latest version
FROM rates 
GROUP BY currency;                           -- inferred primary key


> 
> 3) A "Versioned Temporal Table DDL on source" is always versioned on
> operation_time regardless of the lookup table attribute (event-time or
> processing time attribute), correct? 


Yes, the semantics of `FOR SYSTEM_TIME AS OF o.time` is using the o.time value 
to lookup the version of the temporal table.
For fact table has the processing time attribute, it means only lookup the 
latest version of temporal table and we can do some optimization in 
implementation like only keep the latest version.


Best
Leonard

Reply via email to