@@ -44,21 +44,21 @@ func (l *LogStructured) Start(ctx context.Context) error {
4444 return nil
4545}
4646
47- func (l * LogStructured ) Get (ctx context.Context , key string , revision int64 ) (revRet int64 , kvRet * server.KeyValue , errRet error ) {
47+ func (l * LogStructured ) Get (ctx context.Context , key , rangeEnd string , limit , revision int64 ) (revRet int64 , kvRet * server.KeyValue , errRet error ) {
4848 defer func () {
4949 l .adjustRevision (ctx , & revRet )
5050 logrus .Tracef ("GET %s, rev=%d => rev=%d, kv=%v, err=%v" , key , revision , revRet , kvRet != nil , errRet )
5151 }()
5252
53- rev , event , err := l .get (ctx , key , revision , false )
53+ rev , event , err := l .get (ctx , key , rangeEnd , limit , revision , false )
5454 if event == nil {
5555 return rev , nil , err
5656 }
5757 return rev , event .KV , err
5858}
5959
60- func (l * LogStructured ) get (ctx context.Context , key string , revision int64 , includeDeletes bool ) (int64 , * server.Event , error ) {
61- rev , events , err := l .log .List (ctx , key , "" , 1 , revision , includeDeletes )
60+ func (l * LogStructured ) get (ctx context.Context , key , rangeEnd string , limit , revision int64 , includeDeletes bool ) (int64 , * server.Event , error ) {
61+ rev , events , err := l .log .List (ctx , key , rangeEnd , limit , revision , includeDeletes )
6262 if err == server .ErrCompacted {
6363 // ignore compacted when getting by revision
6464 err = nil
@@ -91,7 +91,7 @@ func (l *LogStructured) Create(ctx context.Context, key string, value []byte, le
9191 logrus .Tracef ("CREATE %s, size=%d, lease=%d => rev=%d, err=%v" , key , len (value ), lease , revRet , errRet )
9292 }()
9393
94- rev , prevEvent , err := l .get (ctx , key , 0 , true )
94+ rev , prevEvent , err := l .get (ctx , key , "" , 1 , 0 , true )
9595 if err != nil {
9696 return 0 , err
9797 }
@@ -123,7 +123,7 @@ func (l *LogStructured) Delete(ctx context.Context, key string, revision int64)
123123 logrus .Tracef ("DELETE %s, rev=%d => rev=%d, kv=%v, deleted=%v, err=%v" , key , revision , revRet , kvRet != nil , deletedRet , errRet )
124124 }()
125125
126- rev , event , err := l .get (ctx , key , 0 , true )
126+ rev , event , err := l .get (ctx , key , "" , 1 , 0 , true )
127127 if err != nil {
128128 return 0 , nil , false , err
129129 }
@@ -150,7 +150,7 @@ func (l *LogStructured) Delete(ctx context.Context, key string, revision int64)
150150 if err != nil {
151151 // If error on Append we assume it's a UNIQUE constraint error, so we fetch the latest (if we can)
152152 // and return that the delete failed
153- latestRev , latestEvent , latestErr := l .get (ctx , key , 0 , true )
153+ latestRev , latestEvent , latestErr := l .get (ctx , key , "" , 1 , 0 , true )
154154 if latestErr != nil || latestEvent == nil {
155155 return rev , event .KV , false , nil
156156 }
@@ -220,7 +220,7 @@ func (l *LogStructured) Update(ctx context.Context, key string, value []byte, re
220220 logrus .Tracef ("UPDATE %s, value=%d, rev=%d, lease=%v => rev=%d, kvrev=%d, updated=%v, err=%v" , key , len (value ), revision , lease , revRet , kvRev , updateRet , errRet )
221221 }()
222222
223- rev , event , err := l .get (ctx , key , 0 , false )
223+ rev , event , err := l .get (ctx , key , "" , 1 , 0 , false )
224224 if err != nil {
225225 return 0 , nil , false , err
226226 }
@@ -245,7 +245,7 @@ func (l *LogStructured) Update(ctx context.Context, key string, value []byte, re
245245
246246 rev , err = l .log .Append (ctx , updateEvent )
247247 if err != nil {
248- rev , event , err := l .get (ctx , key , 0 , false )
248+ rev , event , err := l .get (ctx , key , "" , 1 , 0 , false )
249249 if event == nil {
250250 return rev , nil , false , err
251251 }
0 commit comments