[CARBONDATA-1257] Measure Filter implementation. This closes #1079
Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/946e4ce5 Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/946e4ce5 Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/946e4ce5 Branch: refs/heads/master Commit: 946e4ce5a2bc6fb49ed3db7c02d8f40b5bc56502 Parents: dd809ed 4e83509 Author: Ravindra Pesala <ravi.pes...@gmail.com> Authored: Mon Jul 31 17:18:43 2017 +0530 Committer: Ravindra Pesala <ravi.pes...@gmail.com> Committed: Mon Jul 31 17:18:43 2017 +0530 ---------------------------------------------------------------------- .../core/datastore/block/SegmentProperties.java | 27 +++ ...CompressedMeasureChunkFileBasedReaderV1.java | 3 +- ...CompressedMeasureChunkFileBasedReaderV2.java | 11 +- ...CompressedMeasureChunkFileBasedReaderV3.java | 10 +- .../core/datastore/page/ColumnPage.java | 2 +- .../page/encoding/EncodingStrategy.java | 2 +- .../statistics/ColumnPageStatsCollector.java | 3 + .../statistics/PrimitivePageStatsCollector.java | 47 +++- .../statistics/VarLengthPageStatsCollector.java | 6 + .../blockletindex/BlockletDataMap.java | 6 +- .../core/metadata/ColumnPageCodecMeta.java | 53 ++++- .../core/metadata/ValueEncoderMeta.java | 22 +- .../core/metadata/schema/table/CarbonTable.java | 3 + .../core/scan/expression/ColumnExpression.java | 22 ++ .../conditional/ConditionalExpression.java | 2 +- .../logical/BinaryLogicalExpression.java | 4 +- .../core/scan/filter/ColumnFilterInfo.java | 88 +++++++ .../core/scan/filter/DimColumnFilterInfo.java | 78 ------- .../scan/filter/FilterExpressionProcessor.java | 70 +++++- .../carbondata/core/scan/filter/FilterUtil.java | 230 ++++++++++++++----- .../ExcludeColGroupFilterExecuterImpl.java | 2 +- .../executer/ExcludeFilterExecuterImpl.java | 162 ++++++++++--- .../IncludeColGroupFilterExecuterImpl.java | 2 +- .../executer/IncludeFilterExecuterImpl.java | 228 +++++++++++++++--- .../MeasureColumnExecuterFilterInfo.java | 30 +++ .../executer/RestructureEvaluatorImpl.java | 41 +++- .../RestructureExcludeFilterExecutorImpl.java | 17 +- .../RestructureIncludeFilterExecutorImpl.java | 17 +- .../executer/RowLevelFilterExecuterImpl.java | 24 +- .../RowLevelRangeGrtThanFiterExecuterImpl.java | 226 ++++++++++++++---- ...elRangeGrtrThanEquaToFilterExecuterImpl.java | 228 ++++++++++++++---- ...velRangeLessThanEqualFilterExecuterImpl.java | 194 +++++++++++++--- .../RowLevelRangeLessThanFiterExecuterImpl.java | 197 +++++++++++++--- .../RowLevelRangeTypeExecuterFacory.java | 16 +- .../resolver/ConditionalFilterResolverImpl.java | 111 ++++++--- .../filter/resolver/FilterResolverIntf.java | 9 + .../resolver/LogicalFilterResolverImpl.java | 4 + .../resolver/RowLevelFilterResolverImpl.java | 3 +- .../RowLevelRangeFilterResolverImpl.java | 93 ++++++-- .../resolverinfo/ColumnResolvedFilterInfo.java | 22 ++ .../DimColumnResolvedFilterInfo.java | 22 +- .../MeasureColumnResolvedFilterInfo.java | 98 +++++++- .../TrueConditionalResolverImpl.java | 2 +- .../visitor/CustomTypeDictionaryVisitor.java | 17 +- .../visitor/DictionaryColumnVisitor.java | 11 +- .../visitor/FilterInfoTypeVisitorFactory.java | 16 +- .../visitor/MeasureColumnVisitor.java | 77 +++++++ .../visitor/NoDictionaryTypeVisitor.java | 10 +- .../visitor/RangeDictionaryColumnVisitor.java | 10 +- .../visitor/RangeDirectDictionaryVisitor.java | 10 +- .../visitor/RangeNoDictionaryTypeVisitor.java | 10 +- .../visitor/ResolvedFilterInfoVisitorIntf.java | 5 +- .../carbondata/core/scan/model/QueryModel.java | 18 +- .../apache/carbondata/core/util/ByteUtil.java | 1 - .../core/util/CarbonMetadataUtil.java | 24 -- .../apache/carbondata/core/util/CarbonUtil.java | 8 + .../carbondata/core/util/DataTypeUtil.java | 61 ++++- .../core/util/comparator/Comparator.java | 58 +++++ .../util/comparator/SerializableComparator.java | 2 +- .../core/scan/filter/FilterUtilTest.java | 8 +- .../ExpressionWithNullTestCase.scala | 10 +- .../spark/sql/SparkUnknownExpression.scala | 2 +- .../spark/sql/SparkUnknownExpression.scala | 2 +- 63 files changed, 2170 insertions(+), 627 deletions(-) ----------------------------------------------------------------------