Skip to content

Commit

Permalink
Merge #132204
Browse files Browse the repository at this point in the history
132204: logictest: add kv tracing to testcase for 131869 r=mgartner a=michae2

This helps show what is happening. Also make the kvtrace option handle keys with tenant prefixes.

Informs: #131860

Release note: None

Co-authored-by: Michael Erickson <[email protected]>
  • Loading branch information
craig[bot] and michae2 committed Oct 14, 2024
2 parents ea1419c + 90f4a30 commit 4ef3e64
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
14 changes: 11 additions & 3 deletions pkg/sql/logictest/logic.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,8 @@ import (
// if kvtrace(CPut,Del,prefix=/Table/54,prefix=/Table/55), the
// results will be filtered to contain messages starting with
// CPut /Table/54, CPut /Table/55, Del /Table/54, Del /Table/55.
// Cannot be combined with noticetrace.
// Tenant IDs do not need to be included in prefixes and will be
// removed from results. Cannot be combined with noticetrace.
// - noticetrace: runs the query and compares only the notices that
// appear. Cannot be combined with kvtrace.
// - nodeidx=N: runs the query on node N of the cluster.
Expand Down Expand Up @@ -2801,6 +2802,9 @@ func (t *logicTest) processSubtest(
for _, c := range strings.Split(s, ",") {
if strings.HasPrefix(c, "prefix=") {
matched := strings.TrimPrefix(c, "prefix=")
if len(t.tenantApps) != 0 || t.cluster.StartedDefaultTestTenant() {
matched = "/Tenant/%" + matched
}
query.keyPrefixFilters = append(query.keyPrefixFilters, matched)
} else if isAllowedKVOp(c) {
query.kvOpTypes = append(query.kvOpTypes, c)
Expand Down Expand Up @@ -2982,7 +2986,11 @@ func (t *logicTest) processSubtest(
return err
}

queryPrefix := `SELECT message FROM [SHOW KV TRACE FOR SESSION] `
projection := `message`
if len(t.tenantApps) != 0 || t.cluster.StartedDefaultTestTenant() {
projection = `regexp_replace(message, '/Tenant/\d+', '')`
}
queryPrefix := fmt.Sprintf(`SELECT %s FROM [SHOW KV TRACE FOR SESSION] `, projection)
buildQuery := func(ops []string, keyFilters []string) string {
var sb strings.Builder
sb.WriteString(queryPrefix)
Expand All @@ -2996,7 +3004,7 @@ func (t *logicTest) processSubtest(
} else {
sb.WriteString("OR ")
}
sb.WriteString(fmt.Sprintf("message like '%s %s%%'", c, f))
sb.WriteString(fmt.Sprintf("message like '%s %s%%' ", c, f))
}
}
return sb.String()
Expand Down
18 changes: 14 additions & 4 deletions pkg/sql/logictest/testdata/logic_test/column_families
Original file line number Diff line number Diff line change
Expand Up @@ -85,22 +85,32 @@ fetched: /t/t_pkey/1/2/z -> /1
statement ok
CREATE TABLE abc (a INT NOT NULL, b FLOAT NOT NULL, c INT, FAMILY (a), FAMILY (b), FAMILY (c))

statement ok
query T regexp,kvtrace(prefix=/Table/109)
INSERT INTO abc VALUES (4, -0, 6)
----
CPut /Table/109/1/\d+/0 -> /TUPLE/1:1:Int/4
CPut /Table/109/1/\d+/1/1 -> /FLOAT/-0
CPut /Table/109/1/\d+/2/1 -> /INT/6

statement ok
ALTER TABLE abc ADD PRIMARY KEY (a, b)

statement ok
query T kvtrace(prefix=/Table/109)
UPDATE abc SET c = NULL WHERE a = 4 AND b = -0
----
Scan /Table/109/4/4/0{-/PrefixEnd} lock Exclusive (Block, Unreplicated)
Del /Table/109/4/4/0/2/1

query IFI
SELECT * FROM abc
----
4 -0 NULL

statement ok
UPDATE abc SET b = 0 WHERE a = 4 AND b = -0;
query T kvtrace(prefix=/Table/109)
UPDATE abc SET b = 0 WHERE a = 4 AND b = -0
----
Scan /Table/109/4/4/0{-/PrefixEnd} lock Exclusive (Block, Unreplicated)
Del /Table/109/4/4/0/1/1

query IFI
SELECT * FROM abc
Expand Down

0 comments on commit 4ef3e64

Please sign in to comment.