Github user kumarvishal09 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2531#discussion_r203999922
--- Diff:
core/src/main/java/org/apache/carbondata/core/datastore/block/SegmentPropertiesAndSchemaHolder.java
---
@@ -237,6 +241,32 @@ public void invalidate(String segmentId, int
segmentPropertiesIndex,
.isEmpty()) {
indexToSegmentPropertiesWrapperMapping.remove(segmentPropertiesIndex);
segmentPropWrapperToSegmentSetMap.remove(segmentPropertiesWrapper);
+ } else if (!clearSegmentWrapperFromMap
+ &&
segmentIdAndSegmentPropertiesIndexWrapper.segmentIdSet.isEmpty()) {
+ // min max columns can very when cache is modified. So even though
entry is not required
+ // to be deleted from map clear the column cache so that it can
filled again
+ segmentPropertiesWrapper.clear();
+ LOGGER.info("cleared min max for segmentProperties at index: " +
segmentPropertiesIndex);
+ }
+ }
+ }
+
+ /**
+ * add segmentId at given segmentPropertyIndex
+ * Note: This method is getting used in extension with other features.
Please do not remove
+ *
+ * @param segmentPropertiesIndex
+ * @param segmentId
+ */
+ public void addSegmentId(int segmentPropertiesIndex, String segmentId) {
+ SegmentPropertiesWrapper segmentPropertiesWrapper =
+ indexToSegmentPropertiesWrapperMapping.get(segmentPropertiesIndex);
+ if (null != segmentPropertiesWrapper) {
+ SegmentIdAndSegmentPropertiesIndexWrapper
segmentIdAndSegmentPropertiesIndexWrapper =
+ segmentPropWrapperToSegmentSetMap.get(segmentPropertiesWrapper);
+ synchronized
(segmentPropertiesWrapper.getTableIdentifier().getCarbonTableIdentifier()
--- End diff --
Use getOrCreateTableLock
---