mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Remove unnecesary joins from queries (#43626)
This commit is contained in:
parent
8ee53347bf
commit
bdbd199910
@ -32,17 +32,15 @@ func (d DashboardPermissionFilter) Where() (string, []interface{}) {
|
|||||||
SELECT distinct DashboardId from (
|
SELECT distinct DashboardId from (
|
||||||
SELECT d.id AS DashboardId
|
SELECT d.id AS DashboardId
|
||||||
FROM dashboard AS d
|
FROM dashboard AS d
|
||||||
LEFT JOIN dashboard AS folder on folder.id = d.folder_id
|
|
||||||
LEFT JOIN dashboard_acl AS da ON
|
LEFT JOIN dashboard_acl AS da ON
|
||||||
da.dashboard_id = d.id OR
|
da.dashboard_id = d.id OR
|
||||||
da.dashboard_id = d.folder_id
|
da.dashboard_id = d.folder_id
|
||||||
LEFT JOIN team_member as ugm on ugm.team_id = da.team_id
|
|
||||||
WHERE
|
WHERE
|
||||||
d.org_id = ? AND
|
d.org_id = ? AND
|
||||||
da.permission >= ? AND
|
da.permission >= ? AND
|
||||||
(
|
(
|
||||||
da.user_id = ? OR
|
da.user_id = ? OR
|
||||||
ugm.user_id = ? OR
|
da.team_id IN (SELECT team_id from team_member AS tm WHERE tm.user_id = ?) OR
|
||||||
da.role IN (?` + strings.Repeat(",?", len(okRoles)-1) + `)
|
da.role IN (?` + strings.Repeat(",?", len(okRoles)-1) + `)
|
||||||
)
|
)
|
||||||
UNION
|
UNION
|
||||||
@ -54,7 +52,7 @@ func (d DashboardPermissionFilter) Where() (string, []interface{}) {
|
|||||||
-- include default permissions -->
|
-- include default permissions -->
|
||||||
da.org_id = -1 AND (
|
da.org_id = -1 AND (
|
||||||
(folder.id IS NOT NULL AND folder.has_acl = ` + falseStr + `) OR
|
(folder.id IS NOT NULL AND folder.has_acl = ` + falseStr + `) OR
|
||||||
(folder.id IS NULL AND d.has_acl = ` + falseStr + `)
|
(folder.id IS NULL AND d.has_acl = ` + falseStr + `)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
WHERE
|
WHERE
|
||||||
|
@ -51,17 +51,15 @@ func (sb *SQLBuilder) WriteDashboardPermissionFilter(user *models.SignedInUser,
|
|||||||
SELECT distinct DashboardId from (
|
SELECT distinct DashboardId from (
|
||||||
SELECT d.id AS DashboardId
|
SELECT d.id AS DashboardId
|
||||||
FROM dashboard AS d
|
FROM dashboard AS d
|
||||||
LEFT JOIN dashboard AS folder on folder.id = d.folder_id
|
|
||||||
LEFT JOIN dashboard_acl AS da ON
|
LEFT JOIN dashboard_acl AS da ON
|
||||||
da.dashboard_id = d.id OR
|
da.dashboard_id = d.id OR
|
||||||
da.dashboard_id = d.folder_id
|
da.dashboard_id = d.folder_id
|
||||||
LEFT JOIN team_member as ugm on ugm.team_id = da.team_id
|
|
||||||
WHERE
|
WHERE
|
||||||
d.org_id = ? AND
|
d.org_id = ? AND
|
||||||
da.permission >= ? AND
|
da.permission >= ? AND
|
||||||
(
|
(
|
||||||
da.user_id = ? OR
|
da.user_id = ? OR
|
||||||
ugm.user_id = ? OR
|
da.team_id IN (SELECT team_id from team_member AS tm WHERE tm.user_id = ?) OR
|
||||||
da.role IN (?` + strings.Repeat(",?", len(okRoles)-1) + `)
|
da.role IN (?` + strings.Repeat(",?", len(okRoles)-1) + `)
|
||||||
)
|
)
|
||||||
UNION
|
UNION
|
||||||
|
Loading…
Reference in New Issue
Block a user