forked from grafana/grafana
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dashboards/SQL: Improve SQL query behavior (grafana#99253)
* update legacy dashboard SQL * merge main * trim message
- Loading branch information
Showing
23 changed files
with
427 additions
and
333 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,51 @@ | ||
SELECT | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as origin_name, | ||
provisioning.external_id as origin_path, | ||
provisioning.check_sum as origin_key, | ||
provisioning.updated as origin_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
{{ if .Query.UseHistoryTable }} | ||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id, | ||
dashboard_version.version, dashboard_version.message, dashboard_version.data | ||
{{ else }} | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as repo_name, | ||
provisioning.external_id as repo_path, | ||
provisioning.check_sum as repo_hash, | ||
provisioning.updated as repo_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
{{ if .Query.UseHistoryTable }} | ||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id, | ||
dashboard_version.version, dashboard_version.message, dashboard_version.data | ||
{{ else }} | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
{{ end }} | ||
FROM {{ .Ident .DashboardTable }} as dashboard | ||
{{ if .Query.UseHistoryTable }} | ||
LEFT OUTER JOIN {{ .Ident .VersionTable }} as dashboard_version ON dashboard.id = dashboard_version.dashboard_id | ||
{{ end }} | ||
LEFT OUTER JOIN {{ .Ident .ProvisioningTable }} as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN {{ .Ident .UserTable }} as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN {{ .Ident .UserTable }} as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = {{ .Arg .Query.GetFolders }} | ||
AND dashboard.org_id = {{ .Arg .Query.OrgID }} | ||
{{ if .Query.UseHistoryTable }} | ||
{{ if .Query.UID }} | ||
AND dashboard.uid = {{ .Arg .Query.UID }} | ||
{{ end }} | ||
{{ if .Query.Version }} | ||
AND dashboard_version.version = {{ .Arg .Query.Version }} | ||
{{ else if .Query.LastID }} | ||
AND dashboard_version.version < {{ .Arg .Query.LastID }} | ||
{{ end }} | ||
ORDER BY | ||
dashboard_version.created ASC, | ||
dashboard_version.version ASC, | ||
dashboard.uid ASC | ||
{{ else }} | ||
{{ if .Query.UID }} | ||
AND dashboard.uid = {{ .Arg .Query.UID }} | ||
{{ else if .Query.LastID }} | ||
AND dashboard.id > {{ .Arg .Query.LastID }} | ||
{{ end }} | ||
FROM {{ .Ident .DashboardTable }} as dashboard | ||
{{ if .Query.UseHistoryTable }} | ||
LEFT OUTER JOIN {{ .Ident .VersionTable }} as dashboard_version ON dashboard.id = dashboard_version.dashboard_id | ||
{{ end }} | ||
LEFT OUTER JOIN {{ .Ident .ProvisioningTable }} as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN {{ .Ident .UserTable }} as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN {{ .Ident .UserTable }} as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = false | ||
AND dashboard.org_id = {{ .Arg .Query.OrgID }} | ||
{{ if .Query.UseHistoryTable }} | ||
{{ if .Query.UID }} | ||
AND dashboard.uid = {{ .Arg .Query.UID }} | ||
{{ end }} | ||
{{ if .Query.Version }} | ||
AND dashboard_version.version = {{ .Arg .Query.Version }} | ||
{{ else if .Query.LastID }} | ||
AND dashboard_version.version < {{ .Arg .Query.LastID }} | ||
{{ end }} | ||
ORDER BY dashboard_version.version DESC | ||
{{ else }} | ||
{{ if .Query.UID }} | ||
AND dashboard.uid = {{ .Arg .Query.UID }} | ||
{{ else if .Query.LastID }} | ||
AND dashboard.id > {{ .Arg .Query.LastID }} | ||
{{ end }} | ||
{{ if .Query.GetTrash }} | ||
AND dashboard.deleted IS NOT NULL | ||
{{ else if .Query.LastID }} | ||
AND dashboard.deleted IS NULL | ||
{{ end }} | ||
ORDER BY dashboard.id DESC | ||
{{ if .Query.GetTrash }} | ||
AND dashboard.deleted IS NOT NULL | ||
{{ else if .Query.LastID }} | ||
AND dashboard.deleted IS NULL | ||
{{ end }} | ||
ORDER BY dashboard.id DESC | ||
{{ end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 17 additions & 17 deletions
34
pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
SELECT | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as origin_name, | ||
provisioning.external_id as origin_path, | ||
provisioning.check_sum as origin_key, | ||
provisioning.updated as origin_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = false | ||
AND dashboard.org_id = 2 | ||
ORDER BY dashboard.id DESC | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as repo_name, | ||
provisioning.external_id as repo_path, | ||
provisioning.check_sum as repo_hash, | ||
provisioning.updated as repo_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = FALSE | ||
AND dashboard.org_id = 2 | ||
ORDER BY dashboard.id DESC |
38 changes: 19 additions & 19 deletions
38
pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard_next_page.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,20 @@ | ||
SELECT | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as origin_name, | ||
provisioning.external_id as origin_path, | ||
provisioning.check_sum as origin_key, | ||
provisioning.updated as origin_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = false | ||
AND dashboard.org_id = 2 | ||
AND dashboard.id > 22 | ||
AND dashboard.deleted IS NULL | ||
ORDER BY dashboard.id DESC | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as repo_name, | ||
provisioning.external_id as repo_path, | ||
provisioning.check_sum as repo_hash, | ||
provisioning.updated as repo_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = FALSE | ||
AND dashboard.org_id = 2 | ||
AND dashboard.id > 22 | ||
AND dashboard.deleted IS NULL | ||
ORDER BY dashboard.id DESC |
18 changes: 18 additions & 0 deletions
18
pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-folders.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
SELECT | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as repo_name, | ||
provisioning.external_id as repo_path, | ||
provisioning.check_sum as repo_hash, | ||
provisioning.updated as repo_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = TRUE | ||
AND dashboard.org_id = 2 | ||
ORDER BY dashboard.id DESC |
36 changes: 18 additions & 18 deletions
36
pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,19 @@ | ||
SELECT | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as origin_name, | ||
provisioning.external_id as origin_path, | ||
provisioning.check_sum as origin_key, | ||
provisioning.updated as origin_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = false | ||
AND dashboard.org_id = 2 | ||
AND dashboard.uid = 'UUU' | ||
ORDER BY dashboard.id DESC | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as repo_name, | ||
provisioning.external_id as repo_path, | ||
provisioning.check_sum as repo_hash, | ||
provisioning.updated as repo_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id, | ||
dashboard.version, '' as message, dashboard.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = FALSE | ||
AND dashboard.org_id = 2 | ||
AND dashboard.uid = 'UUU' | ||
ORDER BY dashboard.id DESC |
43 changes: 23 additions & 20 deletions
43
...egistry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_at_version.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,24 @@ | ||
SELECT | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as origin_name, | ||
provisioning.external_id as origin_path, | ||
provisioning.check_sum as origin_key, | ||
provisioning.updated as origin_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id, | ||
dashboard_version.version, dashboard_version.message, dashboard_version.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_version` as dashboard_version ON dashboard.id = dashboard_version.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = false | ||
AND dashboard.org_id = 2 | ||
AND dashboard.uid = 'UUU' | ||
AND dashboard_version.version = 3 | ||
ORDER BY dashboard_version.version DESC | ||
dashboard.org_id, dashboard.id, | ||
dashboard.uid, dashboard.folder_uid, | ||
dashboard.deleted, plugin_id, | ||
provisioning.name as repo_name, | ||
provisioning.external_id as repo_path, | ||
provisioning.check_sum as repo_hash, | ||
provisioning.updated as repo_ts, | ||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id, | ||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id, | ||
dashboard_version.version, dashboard_version.message, dashboard_version.data | ||
FROM `grafana`.`dashboard` as dashboard | ||
LEFT OUTER JOIN `grafana`.`dashboard_version` as dashboard_version ON dashboard.id = dashboard_version.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id | ||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id | ||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id | ||
WHERE dashboard.is_folder = FALSE | ||
AND dashboard.org_id = 2 | ||
AND dashboard.uid = 'UUU' | ||
AND dashboard_version.version = 3 | ||
ORDER BY | ||
dashboard_version.created ASC, | ||
dashboard_version.version ASC, | ||
dashboard.uid ASC |
Oops, something went wrong.