mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-29 01:33:10 -06:00
- Ensure the correct ID is returned from the Max statements as the NullInt64 was not working as expected (#25)
- Check before creating the nextAccountDataID Co-authored-by: alexf@example.com <alexf@example.com>
This commit is contained in:
parent
60e11f88b8
commit
6d27770a69
|
|
@ -130,11 +130,6 @@ func (s *accountDataStatements) InsertAccountData(
|
|||
// " ON CONFLICT (user_id, room_id, type) DO UPDATE" +
|
||||
// " SET id = $5"
|
||||
|
||||
pos, err = s.streamIDStatements.nextAccountDataID(ctx, txn)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// UNIQUE (user_id, room_id, type)
|
||||
// roomId can be NULL
|
||||
docId := fmt.Sprintf("%s,%s,%s", userID, cosmosdbapi.EnsureIdPart(roomID), dataType)
|
||||
|
|
@ -143,8 +138,12 @@ func (s *accountDataStatements) InsertAccountData(
|
|||
dbData, _ := getAccountDataType(s, ctx, s.getPartitionKey(), cosmosDocId)
|
||||
if dbData != nil {
|
||||
dbData.SetUpdateTime()
|
||||
dbData.AccountDataType.ID = int64(pos)
|
||||
} else {
|
||||
pos, err = s.streamIDStatements.nextAccountDataID(ctx, txn)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
data := accountDataTypeCosmos{
|
||||
ID: int64(pos),
|
||||
UserID: userID,
|
||||
|
|
@ -243,7 +242,7 @@ func (s *accountDataStatements) SelectMaxAccountDataID(
|
|||
|
||||
// "SELECT MAX(id) FROM syncapi_account_data_type"
|
||||
|
||||
var nullableID sql.NullInt64
|
||||
// var nullableID sql.NullInt64
|
||||
// err = sqlutil.TxStmt(txn, s.selectMaxAccountDataIDStmt).QueryRowContext(ctx).Scan(&nullableID)
|
||||
params := map[string]interface{}{
|
||||
"@x1": s.getCollectionName(),
|
||||
|
|
@ -258,11 +257,12 @@ func (s *accountDataStatements) SelectMaxAccountDataID(
|
|||
s.selectMaxAccountDataIDStmt, params, &rows)
|
||||
|
||||
if err != cosmosdbutil.ErrNoRows && len(rows) == 1 {
|
||||
nullableID.Int64 = rows[0].Number
|
||||
id = rows[0].Number
|
||||
|
||||
}
|
||||
|
||||
if nullableID.Valid {
|
||||
id = nullableID.Int64
|
||||
}
|
||||
// if nullableID.Valid {
|
||||
// id = nullableID.Int64
|
||||
// }
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ func (s *inviteEventsStatements) SelectInviteEventsInRange(
|
|||
func (s *inviteEventsStatements) SelectMaxInviteID(
|
||||
ctx context.Context, txn *sql.Tx,
|
||||
) (id int64, err error) {
|
||||
var nullableID sql.NullInt64
|
||||
// var nullableID sql.NullInt64
|
||||
|
||||
// "SELECT MAX(id) FROM syncapi_invite_events"
|
||||
|
||||
|
|
@ -306,11 +306,11 @@ func (s *inviteEventsStatements) SelectMaxInviteID(
|
|||
s.selectMaxInviteIDStmt, params, &rows)
|
||||
|
||||
if len(rows) > 0 {
|
||||
nullableID.Int64 = rows[0].Max
|
||||
id = rows[0].Max
|
||||
}
|
||||
|
||||
if nullableID.Valid {
|
||||
id = nullableID.Int64
|
||||
}
|
||||
// if nullableID.Valid {
|
||||
// id = nullableID.Int64
|
||||
// }
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -377,7 +377,7 @@ func (s *peekStatements) SelectMaxPeekID(
|
|||
// "SELECT MAX(id) FROM syncapi_peeks"
|
||||
|
||||
// stmt := sqlutil.TxStmt(txn, s.selectMaxPeekIDStmt)
|
||||
var nullableID sql.NullInt64
|
||||
// var nullableID sql.NullInt64
|
||||
params := map[string]interface{}{
|
||||
"@x1": s.getCollectionName(),
|
||||
}
|
||||
|
|
@ -392,11 +392,11 @@ func (s *peekStatements) SelectMaxPeekID(
|
|||
// err = stmt.QueryRowContext(ctx).Scan(&nullableID)
|
||||
|
||||
if rows != nil {
|
||||
nullableID.Int64 = rows[0].Max
|
||||
id = rows[0].Max
|
||||
}
|
||||
|
||||
if nullableID.Valid {
|
||||
id = nullableID.Int64
|
||||
}
|
||||
// if nullableID.Valid {
|
||||
// id = nullableID.Int64
|
||||
// }
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ func (r *receiptStatements) SelectRoomReceiptsAfter(ctx context.Context, roomIDs
|
|||
func (s *receiptStatements) SelectMaxReceiptID(
|
||||
ctx context.Context, txn *sql.Tx,
|
||||
) (id int64, err error) {
|
||||
var nullableID sql.NullInt64
|
||||
// var nullableID sql.NullInt64
|
||||
|
||||
// "SELECT MAX(id) FROM syncapi_receipts"
|
||||
|
||||
|
|
@ -221,11 +221,11 @@ func (s *receiptStatements) SelectMaxReceiptID(
|
|||
// stmt := sqlutil.TxStmt(txn, s.selectMaxReceiptID)
|
||||
|
||||
if rows != nil {
|
||||
nullableID.Int64 = rows[0].Max
|
||||
id = rows[0].Max
|
||||
}
|
||||
// err = stmt.QueryRowContext(ctx).Scan(&nullableID)
|
||||
if nullableID.Valid {
|
||||
id = nullableID.Int64
|
||||
}
|
||||
// if nullableID.Valid {
|
||||
// id = nullableID.Int64
|
||||
// }
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ func (s *sendToDeviceStatements) DeleteSendToDeviceMessages(
|
|||
func (s *sendToDeviceStatements) SelectMaxSendToDeviceMessageID(
|
||||
ctx context.Context, txn *sql.Tx,
|
||||
) (id int64, err error) {
|
||||
var nullableID sql.NullInt64
|
||||
// var nullableID sql.NullInt64
|
||||
// "SELECT MAX(id) FROM syncapi_send_to_device"
|
||||
|
||||
params := map[string]interface{}{
|
||||
|
|
@ -286,11 +286,11 @@ func (s *sendToDeviceStatements) SelectMaxSendToDeviceMessageID(
|
|||
// err = stmt.QueryRowContext(ctx).Scan(&nullableID)
|
||||
|
||||
if rows != nil {
|
||||
nullableID.Int64 = rows[0].Max
|
||||
id = rows[0].Max
|
||||
}
|
||||
|
||||
if nullableID.Valid {
|
||||
id = nullableID.Int64
|
||||
}
|
||||
// if nullableID.Valid {
|
||||
// id = nullableID.Int64
|
||||
// }
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue