public class SegmentColumn extends Object implements Serializable
They are immutable and serializable.
Modifier and Type | Field and Description |
---|---|
String |
columnExpression |
long |
valueCount |
SortedSet<Comparable> |
values |
Constructor and Description |
---|
SegmentColumn(String columnExpression,
long valueCount,
SortedSet<Comparable> valueList)
Creates a SegmentColumn.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj) |
String |
getColumnExpression()
Returns the column expression of this constrained column.
|
long |
getValueCount()
Returns the number of distinct values that occur for this column in the
database.
|
SortedSet<Comparable> |
getValues()
Returns an array of predicate values for this column.
|
int |
hashCode() |
SegmentColumn |
merge(SegmentColumn col)
Merges this column with another
resulting in another whose values are super set of both.
|
public final String columnExpression
public final long valueCount
public final SortedSet<Comparable> values
public SegmentColumn(String columnExpression, long valueCount, SortedSet<Comparable> valueList)
columnExpression
- SQL expression for the column. Unique within the
star schema, including accesses to the same physical column via
different join paths.valueCount
- Number of distinct values of this column in the
database. For these purposes, null is counted as a value. If there
are N distinct values of the column, and we have a collection of
segments that cover N values, then Mondrian assumes that it is safe
to roll up.valueList
- List of values to constrain the
column to, or null if unconstrained. Values must be
Comparable
and immutable. For example, Integer, Boolean,
String or Double.public SegmentColumn merge(SegmentColumn col)
public String getColumnExpression()
public SortedSet<Comparable> getValues()
public long getValueCount()
Mondrian uses this to know that it can safely combine multiple segments to roll up. For example, if for the "quarter" column, one segment has values {"Q1", "Q2"} and another has values {"Q3", "Q4"}, and Mondrian knows that there are 4 values, then it can roll up.
If this method returns a value that is too low, Mondrian may generate incorrect results. If you don't know the number of values, return -1.
Copyright © 2018 Hitachi Vantara. All rights reserved.