mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 02:53:51 +08:00
So far, the scanner in get_lowest_invalidated_time_for_hypertable() used a Snapshot that includes the data of all committed transactions (and not only the transactions that are started before the snapshot was created - SNAPSHOT_SELF). This could lead to a situation where we see the old and the new value of a parallel updated tuple. Since get_lowest_invalidated_time_for_hypertable() expects exactly one tuple to be found during the scan, we end up with an error. Since this is performed in our insert path (i.e., it is executed by the invalidation trigger), this error could reject inserts on the hypertable.