mirror of
				https://github.com/matrix-org/synapse.git
				synced 2025-11-04 10:11:05 +01:00 
			
		
		
		
	Add storage method have_events
This commit is contained in:
		
							parent
							
								
									ca65a9d03e
								
							
						
					
					
						commit
						3b9cc882a5
					
				@ -422,6 +422,35 @@ class DataStore(RoomMemberStore, RoomStore,
 | 
			
		||||
            ],
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def have_events(self, event_ids):
 | 
			
		||||
        """Given a list of event ids, check if we have already processed them.
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
            dict: Has an entry for each event id we already have seen. Maps to
 | 
			
		||||
            the rejected reason string if we rejected the event, else maps to
 | 
			
		||||
            None.
 | 
			
		||||
        """
 | 
			
		||||
        def f(txn):
 | 
			
		||||
            sql = (
 | 
			
		||||
                "SELECT e.event_id, reason FROM events as e "
 | 
			
		||||
                "LEFT JOIN rejections as r ON e.event_id = r.event_id "
 | 
			
		||||
                "WHERE event_id = ?"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            res = {}
 | 
			
		||||
            for event_id in event_ids:
 | 
			
		||||
                txn.execute(sql, (event_id,))
 | 
			
		||||
                row = txn.fetchone()
 | 
			
		||||
                if row:
 | 
			
		||||
                    _, rejected = row
 | 
			
		||||
                    res[event_id] = rejected
 | 
			
		||||
 | 
			
		||||
            return res
 | 
			
		||||
 | 
			
		||||
        return self.runInteraction(
 | 
			
		||||
            "have_events", f,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def schema_path(schema):
 | 
			
		||||
    """ Get a filesystem path for the named database schema
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user