timescaledb/test/runner_isolation.sh
Jan Nidzwetzki 0d48019885 Fix snapshot usage in CAgg invalidation scanner
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.
2024-02-21 16:59:21 +01:00

18 lines
437 B
Bash
Executable File

#!/usr/bin/env bash
#
# Wrapper for the PostgreSQL isolationtest runner. It replaces
# the chunks IDs in the output of the tests by _X_X_. So, even
# if the IDs change, the tests will not fail.
##############################################################
set -e
set -u
ISOLATIONTEST=$1
shift
$ISOLATIONTEST "$@" | \
sed -e 's!_[0-9]\{1,\}_[0-9]\{1,\}_chunk!_X_X_chunk!g' | \
sed -e 's!hypertable_[0-9]\{1,\}!hypertable_X!g'