Rework the assign.*NID again

This commit is contained in:
Mark Haines 2017-02-07 14:36:09 +00:00
parent 1d5b573a3f
commit e0df08f4f1
2 changed files with 15 additions and 21 deletions

View file

@ -182,10 +182,6 @@ func (s *statements) insertEventTypeNID(eventType string) (eventTypeNID int64, e
func (s *statements) selectEventTypeNID(eventType string) (eventTypeNID int64, err error) { func (s *statements) selectEventTypeNID(eventType string) (eventTypeNID int64, err error) {
err = s.selectEventTypeNIDStmt.QueryRow(eventType).Scan(&eventTypeNID) err = s.selectEventTypeNIDStmt.QueryRow(eventType).Scan(&eventTypeNID)
if err == sql.ErrNoRows {
eventTypeNID = 0
err = nil
}
return return
} }
@ -241,10 +237,6 @@ func (s *statements) insertEventStateKeyNID(eventStateKey string) (eventStateKey
func (s *statements) selectEventStateKeyNID(eventStateKey string) (eventStateKeyNID int64, err error) { func (s *statements) selectEventStateKeyNID(eventStateKey string) (eventStateKeyNID int64, err error) {
err = s.selectEventStateKeyNIDStmt.QueryRow(eventStateKey).Scan(&eventStateKeyNID) err = s.selectEventStateKeyNIDStmt.QueryRow(eventStateKey).Scan(&eventStateKeyNID)
if err == sql.ErrNoRows {
eventStateKeyNID = 0
err = nil
}
return 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) { func (s *statements) selectRoomNID(roomID string) (roomNID int64, err error) {
err = s.selectRoomNIDStmt.QueryRow(roomID).Scan(&roomNID) err = s.selectRoomNIDStmt.QueryRow(roomID).Scan(&roomNID)
if err == sql.ErrNoRows {
roomNID = 0
err = nil
}
return return
} }

View file

@ -78,34 +78,40 @@ func (d *Database) StoreEvent(event gomatrixserverlib.Event) error {
} }
func (d *Database) assignRoomNID(roomID string) (int64, 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) 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 { if err != nil {
return 0, err return 0, err
} }
if roomNID == 0 {
return d.statements.insertRoomNID(roomID)
}
return roomNID, nil return roomNID, nil
} }
func (d *Database) assignEventTypeNID(eventType string) (int64, error) { 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) 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 { if err != nil {
return 0, err return 0, err
} }
if eventTypeNID == 0 {
return d.statements.insertEventTypeNID(eventType)
}
return eventTypeNID, nil return eventTypeNID, nil
} }
func (d *Database) assignStateKeyNID(eventStateKey string) (int64, error) { 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) 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 { if err != nil {
return 0, err return 0, err
} }
if eventStateKeyNID == 0 {
return d.statements.insertEventStateKeyNID(eventStateKey)
}
return eventStateKeyNID, nil return eventStateKeyNID, nil
} }