MM-53410: Avoid antijoin for channelstore.channelSearchQuery (#24400)

https://mattermost.atlassian.net/browse/MM-53410
```release-note
NONE
```
Этот коммит содержится в:
Agniva De Sarker
2023-08-30 21:10:01 +05:30
коммит произвёл GitHub
родитель a3b194581f
Коммит fc9a9d1d41

Просмотреть файл

@@ -3518,9 +3518,14 @@ func (s SqlChannelStore) channelSearchQuery(opts *store.ChannelSearchOpts) sq.Se
InnerJoin("RetentionPoliciesChannels ON c.Id = RetentionPoliciesChannels.ChannelId").
Where(sq.Eq{"RetentionPoliciesChannels.PolicyId": opts.PolicyID})
} else if opts.ExcludePolicyConstrained {
query = query.
LeftJoin("RetentionPoliciesChannels ON c.Id = RetentionPoliciesChannels.ChannelId").
Where("RetentionPoliciesChannels.ChannelId IS NULL")
if s.DriverName() == model.DatabaseDriverPostgres {
query = query.
LeftJoin("RetentionPoliciesChannels ON c.Id = RetentionPoliciesChannels.ChannelId").
Where("RetentionPoliciesChannels.ChannelId IS NULL")
} else {
query = query.Where(sq.Expr(`c.Id NOT IN (SELECT ChannelId FROM RetentionPoliciesChannels)`))
}
} else if opts.IncludePolicyID {
query = query.
LeftJoin("RetentionPoliciesChannels ON c.Id = RetentionPoliciesChannels.ChannelId")