-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
bugSomething isn't workingSomething isn't working
Milestone
Description
きっかけになった議論: #57 (comment)
採番値をいくつ確保するのかは SequenceStore.ResetReserveSequence の reservationAmount で指定されますが、現行の実装ではリセット時に 1 つ多く採番値が予約されてしまいます。
例えば、初項(firstValue)が 1 で、公差(incrementStep)が 1 の場合、reservationAmount が 10 のときは maxReservedValue が 10 で予約される必要がありますが(1~10を採番できるように)、現行の実装では maxReservedValue が 11 になります。firstValue そのものも採番できる値であるという考慮が不足していたのではないかと予想します。
private[this] def reset( firstValue: BigInt, reservationAmount: BigInt, sequenceSubId: Option[String], )(implicit sessionContext: SessionContext): Future[SequenceReset] = { reserve(maxReservedValue = firstValue, reservationAmount, sequenceSubId) .map(r => SequenceReset(r.maxReservedValue)) }lerna-app-library/SequenceStore.scala at v2.0.0 · lerna-stack/lerna-app-library
private[this] def reserve( maxReservedValue: BigInt, reservationAmount: BigInt, sequenceSubId: Option[String], )(implicit sessionContext: SessionContext): Future[SequenceReserved] = { writeReservation( newMaxReservedValue = maxReservedValue + (incrementStep * reservationAmount), sequenceSubId = sequenceSubId, ) }lerna-app-library/SequenceStore.scala at v2.0.0 · lerna-stack/lerna-app-library
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working