[v10.1.x] Search v1: Remove unnecessary subqueries (#72710)
Search v1: Remove unnecessary subqueries (#72388)
* Add feature flag
* Introduce interface and dummy implementation
* Add tests for the new filter
* accessControlDashboardPermissionFilterNoFolderSubquery implementation
* join only if it's necessary
* force ordering for tests
* Temporarily enable new query for benchmarks
(cherry picked from commit 2c26a02b82)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
d7a65cb7ca
commit
5769d0be49
@@ -20,6 +20,7 @@ type SQLBuilder struct {
|
||||
features featuremgmt.FeatureToggles
|
||||
sql bytes.Buffer
|
||||
params []interface{}
|
||||
leftJoin string
|
||||
recQry string
|
||||
recQryParams []interface{}
|
||||
recursiveQueriesAreSupported bool
|
||||
@@ -43,6 +44,9 @@ func (sb *SQLBuilder) GetSQLString() string {
|
||||
var bf bytes.Buffer
|
||||
bf.WriteString(sb.recQry)
|
||||
bf.WriteString(sb.sql.String())
|
||||
if sb.leftJoin != "" {
|
||||
bf.WriteString(" LEFT OUTER JOIN " + sb.leftJoin)
|
||||
}
|
||||
return bf.String()
|
||||
}
|
||||
|
||||
@@ -65,9 +69,11 @@ func (sb *SQLBuilder) WriteDashboardPermissionFilter(user *user.SignedInUser, pe
|
||||
params []interface{}
|
||||
recQry string
|
||||
recQryParams []interface{}
|
||||
leftJoin string
|
||||
)
|
||||
|
||||
filterRBAC := permissions.NewAccessControlDashboardPermissionFilter(user, permission, queryType, sb.features, sb.recursiveQueriesAreSupported)
|
||||
leftJoin = filterRBAC.LeftJoin()
|
||||
sql, params = filterRBAC.Where()
|
||||
recQry, recQryParams = filterRBAC.With()
|
||||
|
||||
@@ -75,4 +81,5 @@ func (sb *SQLBuilder) WriteDashboardPermissionFilter(user *user.SignedInUser, pe
|
||||
sb.params = append(sb.params, params...)
|
||||
sb.recQry = recQry
|
||||
sb.recQryParams = recQryParams
|
||||
sb.leftJoin = leftJoin
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user