From e7cfcf9f571bb8de8ae8f4caa57a7b5b5d8de1f6 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Sat, 19 Dec 2020 08:00:02 +0100 Subject: [PATCH] Fix problematic query with filtering by message flag --- store/rdbms/messaging_messages.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/store/rdbms/messaging_messages.go b/store/rdbms/messaging_messages.go index 59c2c15ab..6f66a9cc9 100644 --- a/store/rdbms/messaging_messages.go +++ b/store/rdbms/messaging_messages.go @@ -3,6 +3,7 @@ package rdbms import ( "context" "database/sql" + "fmt" "github.com/Masterminds/squirrel" "github.com/cortezaproject/corteza-server/messaging/types" "github.com/cortezaproject/corteza-server/store" @@ -88,13 +89,19 @@ func (s Store) convertMessagingMessageFilter(f types.MessageFilter) (query squir if flagQuery, err = s.convertMessagingFlagFilter(types.MessageFlagFilter{Flag: flag}); err != nil { return } else { - query = query. - Where(squirrel.Eq{"msg.id": flagQuery}) + + if fqSql, fqArgs, fqErr := flagQuery.Where("msg.id = mmf.rel_message").ToSql(); err != nil { + return query, fqErr + } else { + query = query. + Where(fmt.Sprintf("EXISTS (%s)", fqSql), fqArgs...) + } } } // Manually sorting & limiting for BC query = query. + PlaceholderFormat(s.config.PlaceholderFormat). OrderBy("id DESC"). Limit(uint64(f.Limit)) return