Merge pull request #754 from matrix-org/markjh/check_for_nop

Check that something has happend before running the selects
This commit is contained in:
Mark Haines 2016-04-27 13:36:47 +01:00
commit c7c03bf303
3 changed files with 14 additions and 2 deletions

View file

@ -1143,6 +1143,12 @@ class EventsStore(SQLBaseStore):
current_backfill_id, current_forward_id, limit): current_backfill_id, current_forward_id, limit):
"""Get all the new events that have arrived at the server either as """Get all the new events that have arrived at the server either as
new events or as backfilled events""" new events or as backfilled events"""
have_backfill_events = last_backfill_id != current_backfill_id
have_forward_events = last_forward_id != current_forward_id
if not have_backfill_events and not have_forward_events:
return defer.succeed(AllNewEventsResult([], [], [], [], []))
def get_all_new_events_txn(txn): def get_all_new_events_txn(txn):
sql = ( sql = (
"SELECT e.stream_ordering, ej.internal_metadata, ej.json, eg.state_group" "SELECT e.stream_ordering, ej.internal_metadata, ej.json, eg.state_group"
@ -1155,7 +1161,7 @@ class EventsStore(SQLBaseStore):
" ORDER BY e.stream_ordering ASC" " ORDER BY e.stream_ordering ASC"
" LIMIT ?" " LIMIT ?"
) )
if last_forward_id != current_forward_id: if have_forward_events:
txn.execute(sql, (last_forward_id, current_forward_id, limit)) txn.execute(sql, (last_forward_id, current_forward_id, limit))
new_forward_events = txn.fetchall() new_forward_events = txn.fetchall()
@ -1199,7 +1205,7 @@ class EventsStore(SQLBaseStore):
" ORDER BY e.stream_ordering DESC" " ORDER BY e.stream_ordering DESC"
" LIMIT ?" " LIMIT ?"
) )
if last_backfill_id != current_backfill_id: if have_backfill_events:
txn.execute(sql, (-last_backfill_id, -current_backfill_id, limit)) txn.execute(sql, (-last_backfill_id, -current_backfill_id, limit))
new_backfill_events = txn.fetchall() new_backfill_events = txn.fetchall()

View file

@ -106,6 +106,9 @@ class PusherStore(SQLBaseStore):
return self._pushers_id_gen.get_current_token() return self._pushers_id_gen.get_current_token()
def get_all_updated_pushers(self, last_id, current_id, limit): def get_all_updated_pushers(self, last_id, current_id, limit):
if last_id == current_id:
return defer.succeed(([], []))
def get_all_updated_pushers_txn(txn): def get_all_updated_pushers_txn(txn):
sql = ( sql = (
"SELECT id, user_name, access_token, profile_tag, kind," "SELECT id, user_name, access_token, profile_tag, kind,"

View file

@ -391,6 +391,9 @@ class ReceiptsStore(SQLBaseStore):
) )
def get_all_updated_receipts(self, last_id, current_id, limit=None): def get_all_updated_receipts(self, last_id, current_id, limit=None):
if last_id == current_id:
return defer.succeed([])
def get_all_updated_receipts_txn(txn): def get_all_updated_receipts_txn(txn):
sql = ( sql = (
"SELECT stream_id, room_id, receipt_type, user_id, event_id, data" "SELECT stream_id, room_id, receipt_type, user_id, event_id, data"