Skip to content

Commit

Permalink
sql: correct how localities are displayed in crdb_internal tables
Browse files Browse the repository at this point in the history
Prior to this patch, localities were turned into a JSON object (not an array),
which removed the order. This now uses the same string format that we use when
declaring the localities in the command line.

Release note: None
  • Loading branch information
BramGruneir committed May 30, 2019
1 parent a841ecd commit 76477fd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 18 deletions.
18 changes: 4 additions & 14 deletions pkg/sql/crdb_internal.go
Original file line number Diff line number Diff line change
Expand Up @@ -1954,7 +1954,7 @@ CREATE TABLE crdb_internal.gossip_nodes (
address STRING NOT NULL,
advertise_address STRING NOT NULL,
attrs JSON NOT NULL,
locality JSON NOT NULL,
locality STRING NOT NULL,
server_version STRING NOT NULL,
build_tag STRING NOT NULL,
started_at TIMESTAMP NOT NULL,
Expand Down Expand Up @@ -2038,11 +2038,6 @@ CREATE TABLE crdb_internal.gossip_nodes (
attrs.Add(json.FromString(a))
}

locality := json.NewObjectBuilder(len(d.Locality.Tiers))
for _, t := range d.Locality.Tiers {
locality.Add(t.Key, json.FromString(t.Value))
}

addr, err := g.GetNodeIDAddress(d.NodeID)
if err != nil {
return err
Expand All @@ -2054,7 +2049,7 @@ CREATE TABLE crdb_internal.gossip_nodes (
tree.NewDString(d.Address.AddressField),
tree.NewDString(addr.String()),
tree.NewDJSON(attrs.Build()),
tree.NewDJSON(locality.Build()),
tree.NewDString(d.Locality.String()),
tree.NewDString(d.ServerVersion.String()),
tree.NewDString(d.BuildTag),
tree.MakeDTimestamp(timeutil.Unix(0, d.StartedAt), time.Microsecond),
Expand Down Expand Up @@ -2322,7 +2317,7 @@ CREATE TABLE crdb_internal.kv_node_status (
network STRING NOT NULL,
address STRING NOT NULL,
attrs JSON NOT NULL,
locality JSON NOT NULL,
locality STRING NOT NULL,
server_version STRING NOT NULL,
go_version STRING NOT NULL,
tag STRING NOT NULL,
Expand Down Expand Up @@ -2357,11 +2352,6 @@ CREATE TABLE crdb_internal.kv_node_status (
attrs.Add(json.FromString(a))
}

locality := json.NewObjectBuilder(len(n.Desc.Locality.Tiers))
for _, t := range n.Desc.Locality.Tiers {
locality.Add(t.Key, json.FromString(t.Value))
}

var dependencies string
if n.BuildInfo.Dependencies == nil {
dependencies = ""
Expand Down Expand Up @@ -2402,7 +2392,7 @@ CREATE TABLE crdb_internal.kv_node_status (
tree.NewDString(n.Desc.Address.NetworkField),
tree.NewDString(n.Desc.Address.AddressField),
tree.NewDJSON(attrs.Build()),
tree.NewDJSON(locality.Build()),
tree.NewDString(n.Desc.Locality.String()),
tree.NewDString(n.Desc.ServerVersion.String()),
tree.NewDString(n.BuildInfo.GoVersion),
tree.NewDString(n.BuildInfo.Tag),
Expand Down
8 changes: 4 additions & 4 deletions pkg/sql/logictest/testdata/logic_test/crdb_internal
Original file line number Diff line number Diff line change
Expand Up @@ -301,8 +301,8 @@ node_id component field value
query ITTTTT colnames
SELECT node_id, network, regexp_replace(address, '\d+$', '<port>') as address, attrs, locality, regexp_replace(server_version, '^\d+\.\d+(-\d+)?$', '<server_version>') as server_version FROM crdb_internal.gossip_nodes WHERE node_id = 1
----
node_id network address attrs locality server_version
1 tcp 127.0.0.1:<port> [] {"dc": "dc1", "region": "test"} <server_version>
node_id network address attrs locality server_version
1 tcp 127.0.0.1:<port> [] region=test,dc=dc1 <server_version>

query IITBB colnames
SELECT node_id, epoch, regexp_replace(expiration, '^\d+\.\d+,\d+$', '<timestamp>') as expiration, draining, decommissioning FROM crdb_internal.gossip_liveness WHERE node_id = 1
Expand All @@ -314,8 +314,8 @@ query ITTTTTT colnames
SELECT node_id, network, regexp_replace(address, '\d+$', '<port>') as address, attrs, locality, regexp_replace(server_version, '^\d+\.\d+(-\d+)?$', '<server_version>') as server_version, regexp_replace(go_version, '^go.+$', '<go_version>') as go_version
FROM crdb_internal.kv_node_status WHERE node_id = 1
----
node_id network address attrs locality server_version go_version
1 tcp 127.0.0.1:<port> [] {"dc": "dc1", "region": "test"} <server_version> <go_version>
node_id network address attrs locality server_version go_version
1 tcp 127.0.0.1:<port> [] region=test,dc=dc1 <server_version> <go_version>

query IITI colnames
SELECT node_id, store_id, attrs, used
Expand Down

0 comments on commit 76477fd

Please sign in to comment.