@@ -796,19 +796,20 @@ func (r *Reader) ValidateBlockChecksums() error {
796
796
// TODO(ajkr): account for metablock space usage. Perhaps look at the fraction of
797
797
// data blocks overlapped and add that same fraction of the metadata blocks to the
798
798
// estimate.
799
- func (r * Reader ) EstimateDiskUsage (start []byte , end []byte , env ReadEnv ) (uint64 , error ) {
799
+ func (r * Reader ) EstimateDiskUsage (
800
+ start []byte , end []byte , env ReadEnv , transforms IterTransforms ,
801
+ ) (uint64 , error ) {
800
802
if env .Virtual != nil {
801
803
_ , start , end = env .Virtual .ConstrainBounds (start , end , false , r .Comparer .Compare )
802
804
}
803
-
804
805
if ! r .tableFormat .BlockColumnar () {
805
- return estimateDiskUsage [rowblk.IndexIter , * rowblk.IndexIter ](r , start , end )
806
+ return estimateDiskUsage [rowblk.IndexIter , * rowblk.IndexIter ](r , start , end , transforms )
806
807
}
807
- return estimateDiskUsage [colblk.IndexIter , * colblk.IndexIter ](r , start , end )
808
+ return estimateDiskUsage [colblk.IndexIter , * colblk.IndexIter ](r , start , end , transforms )
808
809
}
809
810
810
811
func estimateDiskUsage [I any , PI indexBlockIterator [I ]](
811
- r * Reader , start , end []byte ,
812
+ r * Reader , start , end []byte , transforms IterTransforms ,
812
813
) (uint64 , error ) {
813
814
if r .err != nil {
814
815
return 0 , r .err
@@ -830,13 +831,13 @@ func estimateDiskUsage[I any, PI indexBlockIterator[I]](
830
831
var startIdxIter , endIdxIter PI
831
832
if ! r .Attributes .Has (AttributeTwoLevelIndex ) {
832
833
startIdxIter = new (I )
833
- if err := startIdxIter .InitHandle (r .Comparer , indexH , NoTransforms ); err != nil {
834
+ if err := startIdxIter .InitHandle (r .Comparer , indexH , transforms ); err != nil {
834
835
return 0 , err
835
836
}
836
837
endIdxIter = startIdxIter
837
838
} else {
838
839
var topIter PI = new (I )
839
- if err := topIter .InitHandle (r .Comparer , indexH , NoTransforms ); err != nil {
840
+ if err := topIter .InitHandle (r .Comparer , indexH , transforms ); err != nil {
840
841
return 0 , err
841
842
}
842
843
if ! topIter .SeekGE (start ) {
@@ -853,7 +854,7 @@ func estimateDiskUsage[I any, PI indexBlockIterator[I]](
853
854
}
854
855
defer startIdxBlock .Release ()
855
856
startIdxIter = new (I )
856
- err = startIdxIter .InitHandle (r .Comparer , startIdxBlock , NoTransforms )
857
+ err = startIdxIter .InitHandle (r .Comparer , startIdxBlock , transforms )
857
858
if err != nil {
858
859
return 0 , err
859
860
}
@@ -869,7 +870,7 @@ func estimateDiskUsage[I any, PI indexBlockIterator[I]](
869
870
}
870
871
defer endIdxBlock .Release ()
871
872
endIdxIter = new (I )
872
- err = endIdxIter .InitHandle (r .Comparer , endIdxBlock , NoTransforms )
873
+ err = endIdxIter .InitHandle (r .Comparer , endIdxBlock , transforms )
873
874
if err != nil {
874
875
return 0 , err
875
876
}
0 commit comments