Tests[SearchMessageFTSSimple]

This commit is contained in:
2022-12-11 02:47:23 +01:00
parent 3692b915f3
commit 26cd1533b4
9 changed files with 59 additions and 20 deletions

View File

@@ -46,7 +46,7 @@ func (f MessageFilter) SQL() (string, string, sq.PP, error) {
joinClause += " LEFT JOIN subscriptions subs on messages.channel_id = subs.channel_id "
}
if f.SearchString != nil {
joinClause += " JOIN messages_fts mfts on (mfts.rowid = a.scn_message_id) "
joinClause += " JOIN messages_fts mfts on (mfts.rowid = messages.scn_message_id) "
}
sqlClauses := make([]string, 0)
@@ -58,15 +58,6 @@ func (f MessageFilter) SQL() (string, string, sq.PP, error) {
params["sub_uid"] = *f.ConfirmedSubscriptionBy
}
if f.SearchString != nil {
filter := make([]string, 0)
for i, v := range *f.SearchString {
filter = append(filter, fmt.Sprintf("(messages_fts match :searchstring_%d)", i))
params[fmt.Sprintf("searchstring_%d", i)] = v
}
sqlClauses = append(sqlClauses, "("+strings.Join(filter, " OR ")+")")
}
if f.Sender != nil {
filter := make([]string, 0)
for i, v := range *f.Sender {
@@ -208,9 +199,20 @@ func (f MessageFilter) SQL() (string, string, sq.PP, error) {
sqlClauses = append(sqlClauses, "(usr_message_id IS NOT NULL AND ("+strings.Join(filter, " OR ")+"))")
}
if f.SearchString != nil {
filter := make([]string, 0)
for i, v := range *f.SearchString {
filter = append(filter, fmt.Sprintf("(messages_fts match :searchstring_%d)", i))
params[fmt.Sprintf("searchstring_%d", i)] = v
}
sqlClauses = append(sqlClauses, "("+strings.Join(filter, " OR ")+")")
}
sqlClause := ""
if len(sqlClauses) > 0 {
sqlClause = strings.Join(sqlClauses, " AND ")
} else {
sqlClause = "1=1"
}
return sqlClause, joinClause, params, nil