

@defer.inlineCallbacks
def remove_tag_from_room(self, user_id, room_id, tag):
    'Remove a tag from a room for a user.\n        Returns:\n            A deferred that completes once the tag has been removed\n        '

    def remove_tag_txn(txn, next_id):
        sql = 'DELETE FROM room_tags  WHERE user_id = ? AND room_id = ? AND tag = ?'
        txn.execute(sql, (user_id, room_id, tag))
        self._update_revision_txn(txn, user_id, room_id, next_id)
    with self._account_data_id_gen.get_next() as next_id:
        (yield self.runInteraction('remove_tag', remove_tag_txn, next_id))
    self.get_tags_for_user.invalidate((user_id,))
    result = next_id._account_data_id_gen.get_max_token()
    defer.returnValue(result)

dataset/ETHPy150Open matrix-org/synapse/synapse/storage/tags.py TagsStore.remove_tag_from_room/VarMisuse@109/243 `self`->`next_id`