From e0df08f4f125d73c59e5fcf07327416b6ec63fbf Mon Sep 17 00:00:00 2001 From: Mark Haines Date: Tue, 7 Feb 2017 14:36:09 +0000 Subject: [PATCH] Rework the assign.*NID again --- .../dendrite/roomserver/storage/sql.go | 12 ---------- .../dendrite/roomserver/storage/storage.go | 24 ++++++++++++------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/github.com/matrix-org/dendrite/roomserver/storage/sql.go b/src/github.com/matrix-org/dendrite/roomserver/storage/sql.go index fa8f9d3d5..410b294b7 100644 --- a/src/github.com/matrix-org/dendrite/roomserver/storage/sql.go +++ b/src/github.com/matrix-org/dendrite/roomserver/storage/sql.go @@ -182,10 +182,6 @@ func (s *statements) insertEventTypeNID(eventType string) (eventTypeNID int64, e func (s *statements) selectEventTypeNID(eventType string) (eventTypeNID int64, err error) { err = s.selectEventTypeNIDStmt.QueryRow(eventType).Scan(&eventTypeNID) - if err == sql.ErrNoRows { - eventTypeNID = 0 - err = nil - } return } @@ -241,10 +237,6 @@ func (s *statements) insertEventStateKeyNID(eventStateKey string) (eventStateKey func (s *statements) selectEventStateKeyNID(eventStateKey string) (eventStateKeyNID int64, err error) { err = s.selectEventStateKeyNIDStmt.QueryRow(eventStateKey).Scan(&eventStateKeyNID) - if err == sql.ErrNoRows { - eventStateKeyNID = 0 - err = nil - } return } @@ -289,10 +281,6 @@ func (s *statements) insertRoomNID(roomID string) (roomNID int64, err error) { func (s *statements) selectRoomNID(roomID string) (roomNID int64, err error) { err = s.selectRoomNIDStmt.QueryRow(roomID).Scan(&roomNID) - if err == sql.ErrNoRows { - roomNID = 0 - err = nil - } return } diff --git a/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go b/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go index 41fa25eab..1d6d7a327 100644 --- a/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go +++ b/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go @@ -78,34 +78,40 @@ func (d *Database) StoreEvent(event gomatrixserverlib.Event) error { } func (d *Database) assignRoomNID(roomID string) (int64, error) { + // Check if we already have a numeric ID in the database. roomNID, err := d.statements.selectRoomNID(roomID) + if err == sql.ErrNoRows { + // We don't have a numeric ID so insert one into the database. + return d.statements.insertRoomNID(roomID) + } if err != nil { return 0, err } - if roomNID == 0 { - return d.statements.insertRoomNID(roomID) - } return roomNID, nil } func (d *Database) assignEventTypeNID(eventType string) (int64, error) { + // Check if we already have a numeric ID in the database. eventTypeNID, err := d.statements.selectEventTypeNID(eventType) + if err == sql.ErrNoRows { + // We don't have a numeric ID so insert one into the database. + return d.statements.insertEventTypeNID(eventType) + } if err != nil { return 0, err } - if eventTypeNID == 0 { - return d.statements.insertEventTypeNID(eventType) - } return eventTypeNID, nil } func (d *Database) assignStateKeyNID(eventStateKey string) (int64, error) { + // Check if we already have a numeric ID in the database. eventStateKeyNID, err := d.statements.selectEventStateKeyNID(eventStateKey) + if err == sql.ErrNoRows { + // We don't have a numeric ID so insert one into the database. + return d.statements.insertEventStateKeyNID(eventStateKey) + } if err != nil { return 0, err } - if eventStateKeyNID == 0 { - return d.statements.insertEventStateKeyNID(eventStateKey) - } return eventStateKeyNID, nil }