Github user xuchuanyin commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2327#discussion_r189770357
--- Diff:
datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMap.java
---
@@ -94,20 +83,21 @@ public void setIndexedColumn(Set<String> indexedColumn)
{
List<BloomQueryModel> bloomQueryModels =
getQueryValue(filterExp.getFilterExpression());
for (BloomQueryModel bloomQueryModel : bloomQueryModels) {
LOGGER.debug("prune blocklet for query: " + bloomQueryModel);
- BloomDataMapCache.CacheKey cacheKey = new BloomDataMapCache.CacheKey(
+ BloomCacheKeyValue.CacheKey cacheKey = new
BloomCacheKeyValue.CacheKey(
this.indexPath.toString(), bloomQueryModel.columnName);
- List<BloomDMModel> bloomDMModels =
this.bloomDataMapCache.getBloomDMModelByKey(cacheKey);
- for (BloomDMModel bloomDMModel : bloomDMModels) {
- boolean scanRequired =
bloomDMModel.getBloomFilter().membershipTest(new Key(
+ BloomCacheKeyValue.CacheValue cacheValue = cache.get(cacheKey);
+ List<CarbonBloomFilter> bloomIndexList =
cacheValue.getBloomFilters();
+ for (CarbonBloomFilter bloomFilter : bloomIndexList) {
+ boolean scanRequired = bloomFilter.membershipTest(new Key(
convertValueToBytes(bloomQueryModel.dataType,
bloomQueryModel.filterValue)));
if (scanRequired) {
LOGGER.debug(String.format("BloomCoarseGrainDataMap: Need to
scan -> blocklet#%s",
- String.valueOf(bloomDMModel.getBlockletNo())));
- Blocklet blocklet = new Blocklet(shardName,
String.valueOf(bloomDMModel.getBlockletNo()));
+ String.valueOf(bloomFilter.getBlockletNo())));
--- End diff --
I think `BloomDMModel` is better than `CarbonBloomFilter` in code
understanding.
---