System versioning documentation in the KB says:
If the FOR SYSTEM_TIME clause is not used, the table will show the current data, as if one had specified FOR SYSTEM_TIME AS OF CURRENT_TIMESTAMP
It is not true. Select without FOR SYSTEM_TIME (and when system_versioning_asof=DEFAULT) shows records which have max timestamp in the row end field. It is not always the same as as of current_timestamp.
In a normal situation, both only exclude records which have row end in the past.
However, one can insert historical records with row end in the future, too. It was possible before, via @@timestamp modification, and is going to be even simpler now with
MDEV-16546. The example below is applicable to any active server version.
So, here for system_time all naturally returns the record:
for system_time as of current_timestamp does too
but plain select does not:
According to serg, it should work as it does now, in which case documentation needs to be updated. I don't have any good suggestions for how it should be described. Explaining that row end should be from_unixtime(2147483647.999999) for the record to be shown by SELECT seems somewhat awkward for documentation. I'll leave it to professionals to invent something.