diff --git a/pkg/sql/sqlstats/sslocal/sql_stats_test.go b/pkg/sql/sqlstats/sslocal/sql_stats_test.go index f14707c17094..17fc24d9558d 100644 --- a/pkg/sql/sqlstats/sslocal/sql_stats_test.go +++ b/pkg/sql/sqlstats/sslocal/sql_stats_test.go @@ -506,6 +506,17 @@ func TestExplicitTxnFingerprintAccounting(t *testing.T) { require.Equal(t, tc.curFingerprintCount, sqlStats.GetTotalFingerprintCount(), "testCase: %+v", tc) } + + // Verify reset works correctly. + require.NoError(t, sqlStats.Reset(ctx)) + require.Zero(t, sqlStats.GetTotalFingerprintCount()) + + // Verify the count again after the reset. + for _, tc := range testCases { + recordStats(&tc) + require.Equal(t, tc.curFingerprintCount, sqlStats.GetTotalFingerprintCount(), + "testCase: %+v", tc) + } } func TestAssociatingStmtStatsWithTxnFingerprint(t *testing.T) { @@ -634,6 +645,9 @@ func TestAssociatingStmtStatsWithTxnFingerprint(t *testing.T) { } require.Equal(t, expectedCount, len(stats), "testCase: %+v, stats: %+v", txn, stats) } + + require.NoError(t, sqlStats.Reset(ctx)) + require.Zero(t, sqlStats.GetTotalFingerprintCount()) }) } diff --git a/pkg/sql/sqlstats/ssmemstorage/ss_mem_counter.go b/pkg/sql/sqlstats/ssmemstorage/ss_mem_counter.go index 8c7536b72d86..3e178ee27c22 100644 --- a/pkg/sql/sqlstats/ssmemstorage/ss_mem_counter.go +++ b/pkg/sql/sqlstats/ssmemstorage/ss_mem_counter.go @@ -165,8 +165,8 @@ func (s *SQLStatsAtomicCounters) tryAddTxnFingerprint() (ok bool) { func (s *SQLStatsAtomicCounters) freeByCnt( uniqueStmtFingerprintCount, uniqueTxnFingerprintCount int64, ) { - atomic.AddInt64(&s.uniqueStmtFingerprintCount, uniqueStmtFingerprintCount) - atomic.AddInt64(&s.uniqueTxnFingerprintCount, uniqueTxnFingerprintCount) + atomic.AddInt64(&s.uniqueStmtFingerprintCount, -uniqueStmtFingerprintCount) + atomic.AddInt64(&s.uniqueTxnFingerprintCount, -uniqueTxnFingerprintCount) } // GetTotalFingerprintCount returns total number of unique statement and