@@ -23,59 +23,53 @@ func (d *delegator) delegateShowChangefeedJobs(n *tree.ShowChangefeedJobs) (tree
23
23
// Note: changefeed_details may contain sensitive credentials in sink_uri. This information is redacted when marshaling
24
24
// to JSON in ChangefeedDetails.MarshalJSONPB.
25
25
const (
26
- // In 23.1, we can use the job_type column to filter jobs.
27
- queryTarget23_1 = `
28
- crdb_internal.system_jobs
29
- WHERE job_type = 'CHANGEFEED'
30
- `
31
26
baseSelectClause = `
32
27
WITH payload AS (
33
- SELECT
34
- id,
28
+ SELECT
29
+ id,
35
30
crdb_internal.pb_to_json(
36
- 'cockroach.sql.jobs.jobspb.Payload',
31
+ 'cockroach.sql.jobs.jobspb.Payload',
37
32
payload, false, true
38
- )->'changefeed' AS changefeed_details
39
- FROM
40
- %s
41
- )
42
- SELECT
43
- job_id,
44
- description,
45
- user_name,
46
- status,
47
- running_status,
48
- created,
49
- started,
50
- finished,
51
- modified,
52
- high_water_timestamp,
53
- error,
33
+ )->'changefeed' AS changefeed_details
34
+ FROM
35
+ crdb_internal.system_jobs
36
+ WHERE job_type = 'CHANGEFEED'%s
37
+ )
38
+ SELECT
39
+ job_id,
40
+ description,
41
+ user_name,
42
+ status,
43
+ running_status,
44
+ created,
45
+ started,
46
+ finished,
47
+ modified,
48
+ high_water_timestamp,
49
+ error,
54
50
replace(
55
- changefeed_details->>'sink_uri',
51
+ changefeed_details->>'sink_uri',
56
52
'\u0026', '&'
57
- ) AS sink_uri,
53
+ ) AS sink_uri,
58
54
ARRAY (
59
- SELECT
55
+ SELECT
60
56
concat(
61
- database_name, '.', schema_name, '.',
57
+ database_name, '.', schema_name, '.',
62
58
name
63
- )
64
- FROM
65
- crdb_internal.tables
66
- WHERE
59
+ )
60
+ FROM
61
+ crdb_internal.tables
62
+ WHERE
67
63
table_id = ANY (descriptor_ids)
68
- ) AS full_table_names,
64
+ ) AS full_table_names,
69
65
changefeed_details->'opts'->>'topics' AS topics,
70
- COALESCE(changefeed_details->'opts'->>'format','json') AS format
71
- FROM
72
- crdb_internal.jobs
66
+ COALESCE(changefeed_details->'opts'->>'format','json') AS format
67
+ FROM
68
+ crdb_internal.jobs
73
69
INNER JOIN payload ON id = job_id`
74
70
)
75
71
76
- selectClause := fmt .Sprintf (baseSelectClause , queryTarget23_1 )
77
-
78
- var whereClause , orderbyClause string
72
+ var whereClause , innerWhereClause , orderbyClause string
79
73
if n .Jobs == nil {
80
74
// The query intends to present:
81
75
// - first all the running jobs sorted in order of start time,
87
81
} else {
88
82
// Limit the jobs displayed to the select statement in n.Jobs.
89
83
whereClause = fmt .Sprintf (`WHERE job_id in (%s)` , n .Jobs .String ())
84
+ innerWhereClause = fmt .Sprintf (` AND id in (%s)` , n .Jobs .String ())
90
85
}
91
86
87
+ selectClause := fmt .Sprintf (baseSelectClause , innerWhereClause )
92
88
sqlStmt := fmt .Sprintf ("%s %s %s" , selectClause , whereClause , orderbyClause )
93
89
94
90
return d .parse (sqlStmt )
0 commit comments