You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2016/09/22 05:36:26 UTC
[28/50] [abbrv] incubator-carbondata git commit:
equalsAndHashCodeIssue
equalsAndHashCodeIssue
Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/303ccd93
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/303ccd93
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/303ccd93
Branch: refs/heads/branch-0.1
Commit: 303ccd93371b4234332cde17c38f71def369661b
Parents: cc5ca87
Author: kumarvishal <ku...@gmail.com>
Authored: Sat Sep 17 18:55:36 2016 +0530
Committer: ravipesala <ra...@gmail.com>
Committed: Thu Sep 22 10:01:25 2016 +0530
----------------------------------------------------------------------
.../core/carbon/datastore/BlockIndexStore.java | 73 +++++++------
.../core/carbon/datastore/block/BlockInfo.java | 107 +++++++++++++++++++
.../carbon/datastore/block/TableBlockInfo.java | 18 ++--
.../impl/btree/BlockBTreeLeafNode.java | 7 +-
.../impl/btree/BlockletBTreeLeafNode.java | 4 +-
.../metadata/blocklet/DataFileFooter.java | 12 +--
.../core/util/DataFileFooterConverter.java | 3 +-
7 files changed, 169 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/carbon/datastore/BlockIndexStore.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/BlockIndexStore.java b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/BlockIndexStore.java
index 4a36373..bbebda0 100644
--- a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/BlockIndexStore.java
+++ b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/BlockIndexStore.java
@@ -31,11 +31,10 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import org.apache.carbondata.common.logging.LogService;
-import org.apache.carbondata.common.logging.LogServiceFactory;
import org.apache.carbondata.core.carbon.AbsoluteTableIdentifier;
import org.apache.carbondata.core.carbon.datastore.block.AbstractIndex;
import org.apache.carbondata.core.carbon.datastore.block.BlockIndex;
+import org.apache.carbondata.core.carbon.datastore.block.BlockInfo;
import org.apache.carbondata.core.carbon.datastore.block.TableBlockInfo;
import org.apache.carbondata.core.carbon.datastore.exception.IndexBuilderException;
import org.apache.carbondata.core.carbon.metadata.blocklet.DataFileFooter;
@@ -50,8 +49,6 @@ import org.apache.carbondata.core.util.CarbonUtilException;
*/
public class BlockIndexStore {
- private static final LogService LOGGER =
- LogServiceFactory.getLogService(BlockIndexStore.class.getName());
/**
* singleton instance
*/
@@ -60,13 +57,13 @@ public class BlockIndexStore {
/**
* map to hold the table and its list of blocks
*/
- private Map<AbsoluteTableIdentifier, Map<TableBlockInfo, AbstractIndex>> tableBlocksMap;
+ private Map<AbsoluteTableIdentifier, Map<BlockInfo, AbstractIndex>> tableBlocksMap;
/**
* map to maintain segment id to block info map, this map will be used to
* while removing the block from memory when segment is compacted or deleted
*/
- private Map<AbsoluteTableIdentifier, Map<String, List<TableBlockInfo>>> segmentIdToBlockListMap;
+ private Map<AbsoluteTableIdentifier, Map<String, List<BlockInfo>>> segmentIdToBlockListMap;
/**
* map of block info to lock object map, while loading the btree this will be filled
@@ -74,7 +71,7 @@ public class BlockIndexStore {
* while loading the tree concurrently so only block level lock will be applied another
* block can be loaded concurrently
*/
- private Map<TableBlockInfo, Object> blockInfoLock;
+ private Map<BlockInfo, Object> blockInfoLock;
/**
* table and its lock object to this will be useful in case of concurrent
@@ -84,12 +81,11 @@ public class BlockIndexStore {
private Map<AbsoluteTableIdentifier, Object> tableLockMap;
private BlockIndexStore() {
- tableBlocksMap =
- new ConcurrentHashMap<AbsoluteTableIdentifier, Map<TableBlockInfo, AbstractIndex>>(
- CarbonCommonConstants.DEFAULT_COLLECTION_SIZE);
+ tableBlocksMap = new ConcurrentHashMap<AbsoluteTableIdentifier, Map<BlockInfo, AbstractIndex>>(
+ CarbonCommonConstants.DEFAULT_COLLECTION_SIZE);
tableLockMap = new ConcurrentHashMap<AbsoluteTableIdentifier, Object>(
CarbonCommonConstants.DEFAULT_COLLECTION_SIZE);
- blockInfoLock = new ConcurrentHashMap<TableBlockInfo, Object>();
+ blockInfoLock = new ConcurrentHashMap<BlockInfo, Object>();
segmentIdToBlockListMap = new ConcurrentHashMap<>();
}
@@ -118,7 +114,7 @@ public class BlockIndexStore {
// get the instance
Object lockObject = tableLockMap.get(absoluteTableIdentifier);
- Map<TableBlockInfo, AbstractIndex> tableBlockMapTemp = null;
+ Map<BlockInfo, AbstractIndex> tableBlockMapTemp = null;
int numberOfCores = 1;
try {
numberOfCores = Integer.parseInt(CarbonProperties.getInstance()
@@ -130,19 +126,20 @@ public class BlockIndexStore {
ExecutorService executor = Executors.newFixedThreadPool(numberOfCores);
// Acquire the lock to ensure only one query is loading the table blocks
// if same block is assigned to both the queries
+ List<BlockInfo> blockInfosNeedToLoad = null;
synchronized (lockObject) {
tableBlockMapTemp = tableBlocksMap.get(absoluteTableIdentifier);
// if it is loading for first time
if (null == tableBlockMapTemp) {
- tableBlockMapTemp = new ConcurrentHashMap<TableBlockInfo, AbstractIndex>();
+ tableBlockMapTemp = new ConcurrentHashMap<BlockInfo, AbstractIndex>();
tableBlocksMap.put(absoluteTableIdentifier, tableBlockMapTemp);
}
- fillSegmentIdToTableInfoMap(tableBlocksInfos, absoluteTableIdentifier);
+ blockInfosNeedToLoad = fillSegmentIdToTableInfoMap(tableBlocksInfos, absoluteTableIdentifier);
}
AbstractIndex tableBlock = null;
List<Future<AbstractIndex>> blocksList = new ArrayList<Future<AbstractIndex>>();
int counter = -1;
- for (TableBlockInfo blockInfo : tableBlocksInfos) {
+ for (BlockInfo blockInfo : blockInfosNeedToLoad) {
counter++;
// if table block is already loaded then do not load
// that block
@@ -204,23 +201,29 @@ public class BlockIndexStore {
* @param tableBlockInfos table block infos
* @param absoluteTableIdentifier absolute table identifier
*/
- private void fillSegmentIdToTableInfoMap(List<TableBlockInfo> tableBlockInfos,
+ private List<BlockInfo> fillSegmentIdToTableInfoMap(List<TableBlockInfo> tableBlockInfos,
AbsoluteTableIdentifier absoluteTableIdentifier) {
- Map<String, List<TableBlockInfo>> map = segmentIdToBlockListMap.get(absoluteTableIdentifier);
+ Map<String, List<BlockInfo>> map = segmentIdToBlockListMap.get(absoluteTableIdentifier);
if (null == map) {
- map = new ConcurrentHashMap<String, List<TableBlockInfo>>();
+ map = new ConcurrentHashMap<String, List<BlockInfo>>();
segmentIdToBlockListMap.put(absoluteTableIdentifier, map);
}
+ BlockInfo temp = null;
+ List<BlockInfo> blockInfosNeedToLoad = new ArrayList<>();
+
for (TableBlockInfo info : tableBlockInfos) {
- List<TableBlockInfo> tempTableBlockInfos = map.get(info.getSegmentId());
+ List<BlockInfo> tempTableBlockInfos = map.get(info.getSegmentId());
if (null == tempTableBlockInfos) {
tempTableBlockInfos = new ArrayList<>();
map.put(info.getSegmentId(), tempTableBlockInfos);
}
- if (!tempTableBlockInfos.contains(info)) {
- tempTableBlockInfos.add(info);
+ temp = new BlockInfo(info);
+ if (!tempTableBlockInfos.contains(temp)) {
+ tempTableBlockInfos.add(temp);
}
+ blockInfosNeedToLoad.add(temp);
}
+ return blockInfosNeedToLoad;
}
/**
@@ -246,15 +249,16 @@ public class BlockIndexStore {
}
}
- private AbstractIndex loadBlock(Map<TableBlockInfo, AbstractIndex> tableBlockMapTemp,
- TableBlockInfo blockInfo) throws CarbonUtilException {
+ private AbstractIndex loadBlock(Map<BlockInfo, AbstractIndex> tableBlockMapTemp,
+ BlockInfo blockInfo) throws CarbonUtilException {
AbstractIndex tableBlock;
DataFileFooter footer;
// getting the data file meta data of the block
- footer = CarbonUtil.readMetadatFile(blockInfo.getFilePath(), blockInfo.getBlockOffset(),
- blockInfo.getBlockLength());
+ footer = CarbonUtil.readMetadatFile(blockInfo.getTableBlockInfo().getFilePath(),
+ blockInfo.getTableBlockInfo().getBlockOffset(),
+ blockInfo.getTableBlockInfo().getBlockLength());
tableBlock = new BlockIndex();
- footer.setTableBlockInfo(blockInfo);
+ footer.setBlockInfo(blockInfo);
// building the block
tableBlock.buildIndex(Arrays.asList(footer));
tableBlockMapTemp.put(blockInfo, tableBlock);
@@ -293,25 +297,25 @@ public class BlockIndexStore {
if (null == lockObject) {
return;
}
- Map<TableBlockInfo, AbstractIndex> map = tableBlocksMap.get(absoluteTableIdentifier);
+ Map<BlockInfo, AbstractIndex> map = tableBlocksMap.get(absoluteTableIdentifier);
// if there is no loaded blocks then return
if (null == map || map.isEmpty()) {
return;
}
- Map<String, List<TableBlockInfo>> segmentIdToBlockInfoMap =
+ Map<String, List<BlockInfo>> segmentIdToBlockInfoMap =
segmentIdToBlockListMap.get(absoluteTableIdentifier);
if (null == segmentIdToBlockInfoMap || segmentIdToBlockInfoMap.isEmpty()) {
return;
}
synchronized (lockObject) {
for (String segmentId : segmentsToBeRemoved) {
- List<TableBlockInfo> tableBlockInfoList = segmentIdToBlockInfoMap.remove(segmentId);
+ List<BlockInfo> tableBlockInfoList = segmentIdToBlockInfoMap.remove(segmentId);
if (null == tableBlockInfoList) {
continue;
}
- Iterator<TableBlockInfo> tableBlockInfoIterator = tableBlockInfoList.iterator();
+ Iterator<BlockInfo> tableBlockInfoIterator = tableBlockInfoList.iterator();
while (tableBlockInfoIterator.hasNext()) {
- TableBlockInfo info = tableBlockInfoIterator.next();
+ BlockInfo info = tableBlockInfoIterator.next();
map.remove(info);
}
}
@@ -336,13 +340,12 @@ public class BlockIndexStore {
/**
* table block info to block index map
*/
- private Map<TableBlockInfo, AbstractIndex> tableBlockMap;
+ private Map<BlockInfo, AbstractIndex> tableBlockMap;
// block info
- private TableBlockInfo blockInfo;
+ private BlockInfo blockInfo;
- private BlockLoaderThread(TableBlockInfo blockInfo,
- Map<TableBlockInfo, AbstractIndex> tableBlockMap) {
+ private BlockLoaderThread(BlockInfo blockInfo, Map<BlockInfo, AbstractIndex> tableBlockMap) {
this.tableBlockMap = tableBlockMap;
this.blockInfo = blockInfo;
}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/BlockInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/BlockInfo.java b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/BlockInfo.java
new file mode 100644
index 0000000..8092c7c
--- /dev/null
+++ b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/BlockInfo.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.carbondata.core.carbon.datastore.block;
+
+/**
+ * Below class will be used to store table block info
+ * As in blocklet distribution we are dividing the same block
+ * in parts but in case of block loading blocklets belongs to same
+ * block will be loaded together. This class will be used to store table block info
+ * and equals and hash code method is used to identify blocklet belongs to same block
+ */
+public class BlockInfo {
+
+ /**
+ * table block info, stores all the details
+ * about the block
+ */
+ private TableBlockInfo info;
+
+ /**
+ * Constructor
+ *
+ * @param info
+ */
+ public BlockInfo(TableBlockInfo info) {
+ this.info = info;
+ }
+
+ /**
+ * @return table Block info
+ */
+ public TableBlockInfo getTableBlockInfo() {
+ return info;
+ }
+
+ /**
+ * To set the table block info
+ *
+ * @param info
+ */
+ public void setTableBlockInfo(TableBlockInfo info) {
+ this.info = info;
+ }
+
+ /**
+ * method to get the hash code
+ */
+ @Override public int hashCode() {
+ int result = info.getFilePath().hashCode();
+ result = 31 * result + (int) (info.getBlockOffset() ^ (info.getBlockOffset() >>> 32));
+ result = 31 * result + (int) (info.getBlockLength() ^ (info.getBlockLength() >>> 32));
+ result = 31 * result + info.getSegmentId().hashCode();
+ return result;
+ }
+
+ /**
+ * To check the equality
+ *
+ * @param obj
+ */
+ @Override public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof BlockInfo)) {
+ return false;
+ }
+ BlockInfo other = (BlockInfo) obj;
+ if (!info.getSegmentId().equals(other.info.getSegmentId())) {
+ return false;
+ }
+ if (info.getBlockOffset() != other.info.getBlockOffset()) {
+ return false;
+ }
+ if (info.getBlockLength() != info.getBlockLength()) {
+ return false;
+ }
+
+ if (info.getFilePath() == null && other.info.getFilePath() != null) {
+ return false;
+ } else if (info.getFilePath() != null && other.info.getFilePath() == null) {
+ return false;
+ } else if (!info.getFilePath().equals(other.info.getFilePath())) {
+ return false;
+ }
+ return true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/TableBlockInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/TableBlockInfo.java b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/TableBlockInfo.java
index 3d393b6..f8da9af 100644
--- a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/TableBlockInfo.java
+++ b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/block/TableBlockInfo.java
@@ -19,7 +19,6 @@
package org.apache.carbondata.core.carbon.datastore.block;
import java.io.Serializable;
-import java.util.Arrays;
import org.apache.carbondata.core.carbon.path.CarbonTablePath;
import org.apache.carbondata.core.carbon.path.CarbonTablePath.DataFileUtil;
@@ -74,6 +73,7 @@ public class TableBlockInfo extends Distributable
/**
* constructor to initialize the TbaleBlockInfo with BlockletInfos
+ *
* @param filePath
* @param blockOffset
* @param segmentId
@@ -105,7 +105,6 @@ public class TableBlockInfo extends Distributable
return blockOffset;
}
-
/**
* @return the segmentId
*/
@@ -145,14 +144,16 @@ public class TableBlockInfo extends Distributable
if (blockLength != other.blockLength) {
return false;
}
-
- if (filePath == null) {
- if (other.filePath != null) {
- return false;
- }
+ if (filePath == null && other.filePath != null) {
+ return false;
+ } else if (filePath != null && other.filePath == null) {
+ return false;
} else if (!filePath.equals(other.filePath)) {
return false;
}
+ if (blockletInfos.getStartBlockletNumber() != other.blockletInfos.getStartBlockletNumber()) {
+ return false;
+ }
return true;
}
@@ -225,7 +226,6 @@ public class TableBlockInfo extends Distributable
result = 31 * result + (int) (blockOffset ^ (blockOffset >>> 32));
result = 31 * result + (int) (blockLength ^ (blockLength >>> 32));
result = 31 * result + segmentId.hashCode();
- result = 31 * result + Arrays.hashCode(locations);
result = 31 * result + blockletInfos.getStartBlockletNumber();
return result;
}
@@ -236,6 +236,7 @@ public class TableBlockInfo extends Distributable
/**
* returns BlockletInfos
+ *
* @return
*/
public BlockletInfos getBlockletInfos() {
@@ -244,6 +245,7 @@ public class TableBlockInfo extends Distributable
/**
* set the blocklestinfos
+ *
* @param blockletInfos
*/
public void setBlockletInfos(BlockletInfos blockletInfos) {
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockBTreeLeafNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockBTreeLeafNode.java b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockBTreeLeafNode.java
index fcc98c2..34468a6 100644
--- a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockBTreeLeafNode.java
+++ b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockBTreeLeafNode.java
@@ -19,6 +19,7 @@
package org.apache.carbondata.core.carbon.datastore.impl.btree;
import org.apache.carbondata.core.carbon.datastore.BTreeBuilderInfo;
+import org.apache.carbondata.core.carbon.datastore.block.BlockInfo;
import org.apache.carbondata.core.carbon.datastore.block.TableBlockInfo;
import org.apache.carbondata.core.carbon.metadata.blocklet.DataFileFooter;
import org.apache.carbondata.core.carbon.metadata.blocklet.index.BlockletMinMaxIndex;
@@ -30,7 +31,7 @@ import org.apache.carbondata.core.carbon.metadata.blocklet.index.BlockletMinMaxI
*/
public class BlockBTreeLeafNode extends AbstractBTreeLeafNode {
- private TableBlockInfo blockInfo;
+ private BlockInfo blockInfo;
/**
* Create a leaf node
@@ -47,7 +48,7 @@ public class BlockBTreeLeafNode extends AbstractBTreeLeafNode {
minKeyOfColumns = minMaxIndex.getMinValues();
numberOfKeys = 1;
this.nodeNumber = nodeNumber;
- this.blockInfo = footer.getTableBlockInfo();
+ this.blockInfo = footer.getBlockInfo();
}
/**
@@ -58,7 +59,7 @@ public class BlockBTreeLeafNode extends AbstractBTreeLeafNode {
* @return TableBlockInfo
*/
public TableBlockInfo getTableBlockInfo() {
- return blockInfo;
+ return blockInfo.getTableBlockInfo();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockletBTreeLeafNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockletBTreeLeafNode.java b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockletBTreeLeafNode.java
index 2bbddda..4293610 100644
--- a/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockletBTreeLeafNode.java
+++ b/core/src/main/java/org/apache/carbondata/core/carbon/datastore/impl/btree/BlockletBTreeLeafNode.java
@@ -70,7 +70,7 @@ public class BlockletBTreeLeafNode extends AbstractBTreeLeafNode {
dimensionChunksReader = new CompressedDimensionChunkFileBasedReader(
builderInfos.getFooterList().get(0).getBlockletList().get(leafIndex)
.getDimensionColumnChunk(), builderInfos.getDimensionColumnValueSize(),
- builderInfos.getFooterList().get(0).getTableBlockInfo().getFilePath());
+ builderInfos.getFooterList().get(0).getBlockInfo().getTableBlockInfo().getFilePath());
// get the value compression model which was used to compress the measure values
ValueCompressionModel valueCompressionModel = CarbonUtil.getValueCompressionModel(
builderInfos.getFooterList().get(0).getBlockletList().get(leafIndex)
@@ -79,7 +79,7 @@ public class BlockletBTreeLeafNode extends AbstractBTreeLeafNode {
measureColumnChunkReader = new CompressedMeasureChunkFileBasedReader(
builderInfos.getFooterList().get(0).getBlockletList().get(leafIndex)
.getMeasureColumnChunk(), valueCompressionModel,
- builderInfos.getFooterList().get(0).getTableBlockInfo().getFilePath());
+ builderInfos.getFooterList().get(0).getBlockInfo().getTableBlockInfo().getFilePath());
this.nodeNumber = nodeNumber;
}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/carbon/metadata/blocklet/DataFileFooter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/carbon/metadata/blocklet/DataFileFooter.java b/core/src/main/java/org/apache/carbondata/core/carbon/metadata/blocklet/DataFileFooter.java
index 55587da..d4741eb 100644
--- a/core/src/main/java/org/apache/carbondata/core/carbon/metadata/blocklet/DataFileFooter.java
+++ b/core/src/main/java/org/apache/carbondata/core/carbon/metadata/blocklet/DataFileFooter.java
@@ -21,7 +21,7 @@ package org.apache.carbondata.core.carbon.metadata.blocklet;
import java.io.Serializable;
import java.util.List;
-import org.apache.carbondata.core.carbon.datastore.block.TableBlockInfo;
+import org.apache.carbondata.core.carbon.datastore.block.BlockInfo;
import org.apache.carbondata.core.carbon.metadata.blocklet.index.BlockletIndex;
import org.apache.carbondata.core.carbon.metadata.schema.table.column.ColumnSchema;
@@ -68,7 +68,7 @@ public class DataFileFooter implements Serializable {
/**
* to store the block info detail like file name block index and locations
*/
- private TableBlockInfo tableBlockInfo;
+ private BlockInfo blockInfo;
/**
* @return the versionId
@@ -157,14 +157,14 @@ public class DataFileFooter implements Serializable {
/**
* @return the tableBlockInfo
*/
- public TableBlockInfo getTableBlockInfo() {
- return tableBlockInfo;
+ public BlockInfo getBlockInfo() {
+ return blockInfo;
}
/**
* @param tableBlockInfo the tableBlockInfo to set
*/
- public void setTableBlockInfo(TableBlockInfo tableBlockInfo) {
- this.tableBlockInfo = tableBlockInfo;
+ public void setBlockInfo(BlockInfo tableBlockInfo) {
+ this.blockInfo = tableBlockInfo;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/303ccd93/core/src/main/java/org/apache/carbondata/core/util/DataFileFooterConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/DataFileFooterConverter.java b/core/src/main/java/org/apache/carbondata/core/util/DataFileFooterConverter.java
index 8d7e893..5f3565c 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/DataFileFooterConverter.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/DataFileFooterConverter.java
@@ -29,6 +29,7 @@ import java.util.List;
import org.apache.carbondata.common.logging.LogService;
import org.apache.carbondata.common.logging.LogServiceFactory;
+import org.apache.carbondata.core.carbon.datastore.block.BlockInfo;
import org.apache.carbondata.core.carbon.datastore.block.TableBlockInfo;
import org.apache.carbondata.core.carbon.metadata.blocklet.BlockletInfo;
import org.apache.carbondata.core.carbon.metadata.blocklet.DataFileFooter;
@@ -101,7 +102,7 @@ public class DataFileFooterConverter {
dataFileFooter.setBlockletIndex(blockletIndex);
dataFileFooter.setColumnInTable(columnSchemaList);
dataFileFooter.setNumberOfRows(readBlockIndexInfo.getNum_rows());
- dataFileFooter.setTableBlockInfo(tableBlockInfo);
+ dataFileFooter.setBlockInfo(new BlockInfo(tableBlockInfo));
dataFileFooter.setSegmentInfo(segmentInfo);
dataFileFooters.add(dataFileFooter);
}