mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 14:37:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			168 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
build block-size=28 collectors=(suffix)
 | 
						|
a@5.SET.1:15
 | 
						|
b@2.SET.2:86
 | 
						|
c@9.SET.3:72
 | 
						|
d@3.SET.4:21
 | 
						|
e@2.SET.5:47
 | 
						|
f@0.SET.6:54
 | 
						|
g@8.SET.7:63
 | 
						|
h@3.SET.8:38
 | 
						|
----
 | 
						|
point:    [a@5#1,1,h@3#8,1]
 | 
						|
rangedel: [#0,0,#0,0]
 | 
						|
rangekey: [#0,0,#0,0]
 | 
						|
seqnums:  [1,8]
 | 
						|
 | 
						|
collectors
 | 
						|
----
 | 
						|
0: suffix
 | 
						|
 | 
						|
table-props
 | 
						|
----
 | 
						|
0: [0, 10)
 | 
						|
 | 
						|
block-props
 | 
						|
----
 | 
						|
c#72057594037927935,17:
 | 
						|
  0: [2, 6)
 | 
						|
e#72057594037927935,17:
 | 
						|
  0: [3, 10)
 | 
						|
g#72057594037927935,17:
 | 
						|
  0: [0, 3)
 | 
						|
i#72057594037927935,17:
 | 
						|
  0: [3, 9)
 | 
						|
 | 
						|
# Test an interator with a bound-limited filter that has a filtering criteria
 | 
						|
# too narrow to exclude any blocks.
 | 
						|
 | 
						|
iter filter=(suffix,1,20)
 | 
						|
first
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
----
 | 
						|
    filter.Intersects([2, 6)) = (true, <nil>)
 | 
						|
<a@5:1> MaybeFilteredKeys()=false
 | 
						|
<b@2:2> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([3, 10)) = (true, <nil>)
 | 
						|
<c@9:3> MaybeFilteredKeys()=false
 | 
						|
<d@3:4> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([0, 3)) = (true, <nil>)
 | 
						|
<e@2:5> MaybeFilteredKeys()=false
 | 
						|
<f@0:6> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([3, 9)) = (true, <nil>)
 | 
						|
<g@8:7> MaybeFilteredKeys()=false
 | 
						|
<h@3:8> MaybeFilteredKeys()=false
 | 
						|
. MaybeFilteredKeys()=false
 | 
						|
 | 
						|
# Test an interator with a bound-limited filter that excludes one block, the
 | 
						|
# third block.
 | 
						|
 | 
						|
iter filter=(suffix,3,20)
 | 
						|
first
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
----
 | 
						|
    filter.Intersects([2, 6)) = (true, <nil>)
 | 
						|
<a@5:1> MaybeFilteredKeys()=false
 | 
						|
<b@2:2> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([3, 10)) = (true, <nil>)
 | 
						|
<c@9:3> MaybeFilteredKeys()=false
 | 
						|
<d@3:4> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([0, 3)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinUpperBound(g) = true
 | 
						|
    filter.Intersects([3, 9)) = (true, <nil>)
 | 
						|
<g@8:7> MaybeFilteredKeys()=true
 | 
						|
<h@3:8> MaybeFilteredKeys()=false
 | 
						|
. MaybeFilteredKeys()=false
 | 
						|
 | 
						|
# Test the same case but with an upper bound set that prevents skipping the
 | 
						|
# block.
 | 
						|
 | 
						|
iter filter=(suffix,3,20) filter-upper=f@9
 | 
						|
first
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
----
 | 
						|
    filter.Intersects([2, 6)) = (true, <nil>)
 | 
						|
<a@5:1> MaybeFilteredKeys()=false
 | 
						|
<b@2:2> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([3, 10)) = (true, <nil>)
 | 
						|
<c@9:3> MaybeFilteredKeys()=false
 | 
						|
<d@3:4> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([0, 3)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinUpperBound(g) = false
 | 
						|
<e@2:5> MaybeFilteredKeys()=false
 | 
						|
<f@0:6> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([3, 9)) = (true, <nil>)
 | 
						|
<g@8:7> MaybeFilteredKeys()=false
 | 
						|
<h@3:8> MaybeFilteredKeys()=false
 | 
						|
. MaybeFilteredKeys()=false
 | 
						|
 | 
						|
# Test a case that filters the first two blocks. The third block is not filtered
 | 
						|
# due to block-property intersection. The fourth block is not filtered due to
 | 
						|
# the upper bound.
 | 
						|
 | 
						|
iter filter=(suffix,0,1) filter-upper=h@6
 | 
						|
first
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
next
 | 
						|
----
 | 
						|
    filter.Intersects([2, 6)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinUpperBound(c) = true
 | 
						|
    filter.Intersects([3, 10)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinUpperBound(e) = true
 | 
						|
    filter.Intersects([0, 3)) = (true, <nil>)
 | 
						|
<e@2:5> MaybeFilteredKeys()=true
 | 
						|
<f@0:6> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([3, 9)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinUpperBound(i) = false
 | 
						|
<g@8:7> MaybeFilteredKeys()=false
 | 
						|
<h@3:8> MaybeFilteredKeys()=false
 | 
						|
. MaybeFilteredKeys()=false
 | 
						|
 | 
						|
# Test a similar case in reverse. In reverse if the very first block is reached,
 | 
						|
# we do not know whether or not it's actually within the bounds because we don't
 | 
						|
# have another index separator to bound the block. As such, there's no call to
 | 
						|
# KeyIsWithinLowerBound for the first block of the sstable [ie, the last one
 | 
						|
# visited by the iterator].
 | 
						|
 | 
						|
iter filter=(suffix,9,10) filter-lower=a@0
 | 
						|
last
 | 
						|
prev
 | 
						|
prev
 | 
						|
prev
 | 
						|
prev
 | 
						|
----
 | 
						|
    filter.Intersects([3, 9)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinLowerBound(g) = true
 | 
						|
    filter.Intersects([0, 3)) = (false, <nil>)
 | 
						|
    filter.KeyIsWithinLowerBound(e) = true
 | 
						|
    filter.Intersects([3, 10)) = (true, <nil>)
 | 
						|
<d@3:4> MaybeFilteredKeys()=true
 | 
						|
<c@9:3> MaybeFilteredKeys()=false
 | 
						|
    filter.Intersects([2, 6)) = (false, <nil>)
 | 
						|
<b@2:2> MaybeFilteredKeys()=false
 | 
						|
<a@5:1> MaybeFilteredKeys()=false
 | 
						|
. MaybeFilteredKeys()=false
 | 
						|
 | 
						|
# Add tests with other non-limited filters set, including one with the same
 | 
						|
# Name.
 |