From ec4434c38a21093cdb0fc6509b1b66aae7cc5f90 Mon Sep 17 00:00:00 2001 From: Xin Hao Zhang Date: Mon, 31 Jan 2022 17:35:13 -0500 Subject: [PATCH] sql: handle null values in merge_{statement,transaction}_stats builtins Fixes #75607 The merge_{statement,transaction}_stats builtin functions should skip NULL JSONB values. Release note: None --- pkg/sql/sem/builtins/builtins.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/sql/sem/builtins/builtins.go b/pkg/sql/sem/builtins/builtins.go index f201d36c8e33..39ad908b93d3 100644 --- a/pkg/sql/sem/builtins/builtins.go +++ b/pkg/sql/sem/builtins/builtins.go @@ -4085,6 +4085,9 @@ value if you rely on the HLC for accuracy.`, arr := tree.MustBeDArray(args[0]) var aggregatedStats roachpb.StatementStatistics for _, statsDatum := range arr.Array { + if statsDatum == tree.DNull { + continue + } var stats roachpb.StatementStatistics statsJSON := tree.MustBeDJSON(statsDatum).JSON if err := sqlstatsutil.DecodeStmtStatsStatisticsJSON(statsJSON, &stats); err != nil { @@ -4113,6 +4116,9 @@ value if you rely on the HLC for accuracy.`, arr := tree.MustBeDArray(args[0]) var aggregatedStats roachpb.TransactionStatistics for _, statsDatum := range arr.Array { + if statsDatum == tree.DNull { + continue + } var stats roachpb.TransactionStatistics statsJSON := tree.MustBeDJSON(statsDatum).JSON if err := sqlstatsutil.DecodeTxnStatsStatisticsJSON(statsJSON, &stats); err != nil {