45
45
import org .apache .kylin .measure .BufferedMeasureCodec ;
46
46
import org .apache .kylin .measure .MeasureAggregator ;
47
47
import org .apache .kylin .measure .MeasureAggregators ;
48
- import org .apache .kylin .metadata .datatype .DataType ;
49
48
import org .slf4j .Logger ;
50
49
import org .slf4j .LoggerFactory ;
51
50
@@ -63,6 +62,7 @@ public class GTAggregateScanner implements IGTScanner {
63
62
final ImmutableBitSet metrics ;
64
63
final String [] metricsAggrFuncs ;
65
64
final IGTScanner inputScanner ;
65
+ final BufferedMeasureCodec measureCodec ;
66
66
final AggregationCache aggrCache ;
67
67
final long spillThreshold ; // 0 means no memory control && no spill
68
68
final int storagePushDownLimit ;//default to be Int.MAX
@@ -86,6 +86,7 @@ public GTAggregateScanner(IGTScanner inputScanner, GTScanRequest req, boolean sp
86
86
this .metrics = req .getAggrMetrics ();
87
87
this .metricsAggrFuncs = req .getAggrMetricsFuncs ();
88
88
this .inputScanner = inputScanner ;
89
+ this .measureCodec = req .createMeasureCodec ();
89
90
this .aggrCache = new AggregationCache ();
90
91
this .spillThreshold = (long ) (req .getAggCacheMemThreshold () * MemoryBudgetController .ONE_GB );
91
92
this .aggrMask = new boolean [metricsAggrFuncs .length ];
@@ -175,7 +176,6 @@ class AggregationCache implements Closeable {
175
176
final int keyLength ;
176
177
final boolean [] compareMask ;
177
178
boolean compareAll = true ;
178
- final BufferedMeasureCodec measureCodec ;
179
179
180
180
final Comparator <byte []> bytesComparator = new Comparator <byte []>() {
181
181
@ Override
@@ -213,18 +213,6 @@ public AggregationCache() {
213
213
keyLength = compareMask .length ;
214
214
dumps = Lists .newArrayList ();
215
215
aggBufMap = createBuffMap ();
216
- measureCodec = createMeasureCodec ();
217
- }
218
-
219
- private BufferedMeasureCodec createMeasureCodec () {
220
- DataType [] types = new DataType [metrics .trueBitCount ()];
221
- for (int i = 0 ; i < types .length ; i ++) {
222
- types [i ] = info .getColumnType (metrics .trueBitAt (i ));
223
- }
224
-
225
- BufferedMeasureCodec result = new BufferedMeasureCodec (types );
226
- result .setBufferSize (info .getMaxColumnLength (metrics ));
227
- return result ;
228
216
}
229
217
230
218
private boolean [] createCompareMask () {
0 commit comments