diff --git a/store/sqlstore/store.go b/store/sqlstore/store.go index 29334034f..98b7f4943 100644 --- a/store/sqlstore/store.go +++ b/store/sqlstore/store.go @@ -74,7 +74,7 @@ const ( INSERT INTO whatsmeow_identity_keys (our_jid, their_id, identity) VALUES ($1, $2, $3) ON CONFLICT (our_jid, their_id) DO UPDATE SET identity=excluded.identity ` - deleteAllIdentitiesQuery = `DELETE FROM whatsmeow_identity_keys WHERE our_jid=$1 AND their_id LIKE $2` + deleteAllIdentitiesQuery = `DELETE FROM whatsmeow_identity_keys WHERE our_jid=$1 AND their_id >= $2 || ':' AND their_id < $2 || ';'` deleteIdentityQuery = `DELETE FROM whatsmeow_identity_keys WHERE our_jid=$1 AND their_id=$2` getIdentityQuery = `SELECT identity FROM whatsmeow_identity_keys WHERE our_jid=$1 AND their_id=$2` ) @@ -85,12 +85,12 @@ func (s *SQLStore) PutIdentity(ctx context.Context, address string, key [32]byte } func (s *SQLStore) DeleteAllIdentities(ctx context.Context, phone string) error { - _, err := s.db.Exec(ctx, deleteAllIdentitiesQuery, s.JID, phone+":%") + _, err := s.db.Exec(ctx, deleteAllIdentitiesQuery, s.JID, phone) return err } func (s *SQLStore) DeleteIdentity(ctx context.Context, address string) error { - _, err := s.db.Exec(ctx, deleteAllIdentitiesQuery, s.JID, address) + _, err := s.db.Exec(ctx, deleteIdentityQuery, s.JID, address) return err } @@ -117,30 +117,30 @@ const ( INSERT INTO whatsmeow_sessions (our_jid, their_id, session) VALUES ($1, $2, $3) ON CONFLICT (our_jid, their_id) DO UPDATE SET session=excluded.session ` - deleteAllSessionsQuery = `DELETE FROM whatsmeow_sessions WHERE our_jid=$1 AND their_id LIKE $2` + deleteAllSessionsQuery = `DELETE FROM whatsmeow_sessions WHERE our_jid=$1 AND their_id >= $2 || ':' AND their_id < $2 || ';'` deleteSessionQuery = `DELETE FROM whatsmeow_sessions WHERE our_jid=$1 AND their_id=$2` migratePNToLIDSessionsQuery = ` INSERT INTO whatsmeow_sessions (our_jid, their_id, session) SELECT our_jid, replace(their_id, $2, $3), session FROM whatsmeow_sessions - WHERE our_jid=$1 AND their_id LIKE $2 || ':%' + WHERE our_jid=$1 AND their_id >= $2 || ':' AND their_id < $2 || ';' ON CONFLICT (our_jid, their_id) DO UPDATE SET session=excluded.session ` - deleteAllIdentityKeysQuery = `DELETE FROM whatsmeow_identity_keys WHERE our_jid=$1 AND their_id LIKE $2` + deleteAllIdentityKeysQuery = `DELETE FROM whatsmeow_identity_keys WHERE our_jid=$1 AND their_id >= $2 || ':' AND their_id < $2 || ';'` migratePNToLIDIdentityKeysQuery = ` INSERT INTO whatsmeow_identity_keys (our_jid, their_id, identity) SELECT our_jid, replace(their_id, $2, $3), identity FROM whatsmeow_identity_keys - WHERE our_jid=$1 AND their_id LIKE $2 || ':%' + WHERE our_jid=$1 AND their_id >= $2 || ':' AND their_id < $2 || ';' ON CONFLICT (our_jid, their_id) DO UPDATE SET identity=excluded.identity ` - deleteAllSenderKeysQuery = `DELETE FROM whatsmeow_sender_keys WHERE our_jid=$1 AND sender_id LIKE $2` + deleteAllSenderKeysQuery = `DELETE FROM whatsmeow_sender_keys WHERE our_jid=$1 AND sender_id >= $2 || ':' AND sender_id < $2 || ';'` migratePNToLIDSenderKeysQuery = ` INSERT INTO whatsmeow_sender_keys (our_jid, chat_id, sender_id, sender_key) SELECT our_jid, chat_id, replace(sender_id, $2, $3), sender_key FROM whatsmeow_sender_keys - WHERE our_jid=$1 AND sender_id LIKE $2 || ':%' + WHERE our_jid=$1 AND sender_id >= $2 || ':' AND sender_id < $2 || ';' ON CONFLICT (our_jid, chat_id, sender_id) DO UPDATE SET sender_key=excluded.sender_key ` ) @@ -226,17 +226,17 @@ func (s *SQLStore) DeleteAllSessions(ctx context.Context, phone string) error { } func (s *SQLStore) deleteAllSessions(ctx context.Context, phone string) error { - _, err := s.db.Exec(ctx, deleteAllSessionsQuery, s.JID, phone+":%") + _, err := s.db.Exec(ctx, deleteAllSessionsQuery, s.JID, phone) return err } func (s *SQLStore) deleteAllSenderKeys(ctx context.Context, phone string) error { - _, err := s.db.Exec(ctx, deleteAllSenderKeysQuery, s.JID, phone+":%") + _, err := s.db.Exec(ctx, deleteAllSenderKeysQuery, s.JID, phone) return err } func (s *SQLStore) deleteAllIdentityKeys(ctx context.Context, phone string) error { - _, err := s.db.Exec(ctx, deleteAllIdentityKeysQuery, s.JID, phone+":%") + _, err := s.db.Exec(ctx, deleteAllIdentityKeysQuery, s.JID, phone) return err }