mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 09:17:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			207 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
reset
 | 
						|
----
 | 
						|
 | 
						|
batch commit
 | 
						|
range-key-set x z @5 boop
 | 
						|
----
 | 
						|
committed 1 keys
 | 
						|
 | 
						|
combined-iter
 | 
						|
last
 | 
						|
next
 | 
						|
prev
 | 
						|
----
 | 
						|
x: (., [x-z) @5=boop UPDATED)
 | 
						|
.
 | 
						|
x: (., [x-z) @5=boop UPDATED)
 | 
						|
 | 
						|
# Test limited reverse iteration. The seek-lt-limit z y must see the [x-z) range
 | 
						|
# key because it covers a key within the range [y, z). The range key start
 | 
						|
# boundary isn't until x.
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-lt-limit z y
 | 
						|
next
 | 
						|
prev-limit y
 | 
						|
----
 | 
						|
x: valid (., [x-z) @5=boop UPDATED)
 | 
						|
.
 | 
						|
x: valid (., [x-z) @5=boop UPDATED)
 | 
						|
 | 
						|
# Test limited forward iteration. Since range keys are interleaved at the start
 | 
						|
# boundaries, the iterator is guaranteed to encounter covering range keys
 | 
						|
# without any special casing in the implementation.
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-ge-limit w y
 | 
						|
prev
 | 
						|
next-limit y
 | 
						|
----
 | 
						|
x: valid (., [x-z) @5=boop UPDATED)
 | 
						|
.
 | 
						|
x: valid (., [x-z) @5=boop UPDATED)
 | 
						|
 | 
						|
# Test another limited backward iteration case where there exists a deleted
 | 
						|
# point key and the underlying internalIterator is Prev'd to a key beyond the
 | 
						|
# limit. This should still surface the covering range key.
 | 
						|
 | 
						|
batch commit
 | 
						|
del yy
 | 
						|
----
 | 
						|
committed 1 keys
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-lt-limit z y
 | 
						|
next
 | 
						|
prev-limit y
 | 
						|
----
 | 
						|
x: valid (., [x-z) @5=boop UPDATED)
 | 
						|
.
 | 
						|
x: valid (., [x-z) @5=boop UPDATED)
 | 
						|
 | 
						|
# Test a case during limited reverse iteration where a range key covers a
 | 
						|
# portion of the keyspace within the limit. The iterator should NOT pause and
 | 
						|
# should surface the range key.
 | 
						|
 | 
						|
reset
 | 
						|
----
 | 
						|
 | 
						|
batch commit
 | 
						|
del b
 | 
						|
range-key-set a d @1 foo
 | 
						|
----
 | 
						|
committed 2 keys
 | 
						|
 | 
						|
flush
 | 
						|
----
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-ge z
 | 
						|
prev-limit c
 | 
						|
----
 | 
						|
.
 | 
						|
a: valid (., [a-d) @1=foo UPDATED)
 | 
						|
 | 
						|
# Test a case during limited reverse iteration where there exists a range key
 | 
						|
# but it ends before the limit. The iterator should pause.
 | 
						|
 | 
						|
reset
 | 
						|
----
 | 
						|
 | 
						|
batch commit
 | 
						|
del b
 | 
						|
range-key-set a c @1 foo
 | 
						|
----
 | 
						|
committed 2 keys
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-ge z
 | 
						|
prev-limit c
 | 
						|
----
 | 
						|
.
 | 
						|
. at-limit
 | 
						|
 | 
						|
# Test at-limit interactions with RangeKeyChanged().
 | 
						|
# Regression test for #1963.
 | 
						|
 | 
						|
reset
 | 
						|
----
 | 
						|
 | 
						|
# Construct a range key and points such that there are deleted keys that a
 | 
						|
# -WithLimit iterator operation may pause at both at the beginning and end of
 | 
						|
# the range key's bounds.
 | 
						|
#
 | 
						|
#                    * b.DEL             * cat.SET         * dog.DEL
 | 
						|
#   |-------------------------------------------------------------------) [a,e)@1→foo
 | 
						|
#   a                b                c                d                e
 | 
						|
 | 
						|
batch commit
 | 
						|
del b
 | 
						|
set cat cat
 | 
						|
del dog
 | 
						|
range-key-set a e @1 foo
 | 
						|
----
 | 
						|
committed 4 keys
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-ge-limit a bat
 | 
						|
seek-ge-limit a bat
 | 
						|
seek-ge-limit apple bat
 | 
						|
seek-ge-limit cow zoo
 | 
						|
----
 | 
						|
a: valid (., [a-e) @1=foo UPDATED)
 | 
						|
a: valid (., [a-e) @1=foo)
 | 
						|
apple: valid (., [a-e) @1=foo)
 | 
						|
cow: valid (., [a-e) @1=foo)
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-ge a
 | 
						|
next-limit bat
 | 
						|
next-limit dog
 | 
						|
next-limit zoo
 | 
						|
----
 | 
						|
a: (., [a-e) @1=foo UPDATED)
 | 
						|
. at-limit
 | 
						|
cat: valid (cat, [a-e) @1=foo UPDATED)
 | 
						|
. exhausted
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-lt-limit f e
 | 
						|
seek-lt-limit e d
 | 
						|
seek-lt-limit e d
 | 
						|
seek-lt-limit f e
 | 
						|
seek-lt-limit e d
 | 
						|
----
 | 
						|
. at-limit
 | 
						|
cat: valid (cat, [a-e) @1=foo UPDATED)
 | 
						|
cat: valid (cat, [a-e) @1=foo)
 | 
						|
. at-limit
 | 
						|
cat: valid (cat, [a-e) @1=foo UPDATED)
 | 
						|
 | 
						|
# Add a new dz.SET key.
 | 
						|
#
 | 
						|
#                    * b.DEL             * cat.SET         * dog.DEL  * dz.SET
 | 
						|
#   |-------------------------------------------------------------------) [a,e)@1→foo
 | 
						|
#   a                b                c                d                e
 | 
						|
 | 
						|
batch commit
 | 
						|
set dz dz
 | 
						|
----
 | 
						|
committed 1 keys
 | 
						|
 | 
						|
combined-iter
 | 
						|
seek-ge dz
 | 
						|
prev-limit e
 | 
						|
prev-limit dy
 | 
						|
prev-limit c
 | 
						|
prev
 | 
						|
next
 | 
						|
----
 | 
						|
dz: (dz, [a-e) @1=foo UPDATED)
 | 
						|
. at-limit
 | 
						|
cat: valid (cat, [a-e) @1=foo UPDATED)
 | 
						|
a: valid (., [a-e) @1=foo)
 | 
						|
.
 | 
						|
a: (., [a-e) @1=foo UPDATED)
 | 
						|
 | 
						|
# Test enforcing limits even while skipping point keys.
 | 
						|
 | 
						|
reset
 | 
						|
----
 | 
						|
 | 
						|
batch commit
 | 
						|
set b@9 b@9
 | 
						|
set c@2 c@2
 | 
						|
set d@8 d@8
 | 
						|
----
 | 
						|
committed 3 keys
 | 
						|
 | 
						|
combined-iter point-key-filter=(6,10)
 | 
						|
last
 | 
						|
prev-limit c
 | 
						|
seek-ge-limit c@9 d
 | 
						|
----
 | 
						|
d@8: (d@8, .)
 | 
						|
. at-limit
 | 
						|
. at-limit
 |