Skip to content

Commit

Permalink
cluster-ui: fix replicas and regions query for the database details API
Browse files Browse the repository at this point in the history
A change in cockroachdb#105582 caused the regions/replicas query to return
incorrect, unexpected results causing the endpoint to never resolve
properly, which in turn, caused an infinite loading state. This change
fixes the regions/replicas query for the database details API.

Release note (ui change): fix a broken query for the database details
page that was causing an infinite loading state.
  • Loading branch information
THardy98 committed Sep 15, 2023
1 parent a967fbe commit 0a7c93c
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions pkg/ui/workspaces/cluster-ui/src/api/databaseDetailsApi.ts
Expand Up @@ -354,19 +354,19 @@ const getDatabaseReplicasAndRegions: DatabaseDetailsQuery<DatabaseReplicasRegion
createStmt: dbName => {
return {
sql: Format(
`WITH
replicasAndregions as (
SELECT
r.replicas,
ARRAY(SELECT DISTINCT split_part(split_part(unnest(replica_localities),',',1),'=',2)) as regions
FROM crdb_internal.tables as t
JOIN %1.crdb_internal.table_spans as s ON s.descriptor_id = t.table_id
JOIN crdb_internal.ranges_no_leases as r ON s.start_key < r.end_key AND s.end_key > r.start_key
WHERE t.database_name = $1
),
unique_replicas AS (SELECT array_agg(distinct(unnest(replicas))) as replicas FROM replicasAndRegions),
unique_regions AS (SELECT array_agg(distinct(unnest(regions))) as regions FROM replicasAndRegions)
SELECT replicas, regions FROM unique_replicas CROSS JOIN unique_regions`,
`WITH replicasAndRegionsPerDbRange AS (
SELECT
r.replicas,
ARRAY(SELECT DISTINCT split_part(split_part(unnest(replica_localities), ',', 1), '=', 2)) AS regions
FROM crdb_internal.tables AS t
JOIN %1.crdb_internal.table_spans AS s ON s.descriptor_id = t.table_id
JOIN crdb_internal.ranges_no_leases AS r ON s.start_key < r.end_key AND s.end_key > r.start_key
WHERE t.database_name = $1
)
SELECT
array_agg(DISTINCT replica_val) AS replicas,
array_agg(DISTINCT region_val) AS regions
FROM replicasAndRegionsPerDbRange, unnest(replicas) AS replica_val, unnest(regions) AS region_val`,
[new Identifier(dbName)],
),
arguments: [dbName],
Expand Down

0 comments on commit 0a7c93c

Please sign in to comment.