Class RolapStar.Column

  • Direct Known Subclasses:
    RolapStar.Measure
    Enclosing class:
    RolapStar

    public static class RolapStar.Column
    extends java.lang.Object
    A column in a star schema.
    • Field Detail

      • COMPARATOR

        public static final java.util.Comparator<RolapStar.Column> COMPARATOR
    • Constructor Detail

      • Column

        protected Column​(Dialect.Datatype datatype)
        Fake column.
        Parameters:
        datatype - Datatype
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getName

        public java.lang.String getName()
      • getBitPosition

        public int getBitPosition()
      • getSqlQuery

        public SqlQuery getSqlQuery()
      • getUsagePrefix

        public java.lang.String getUsagePrefix()
      • isNameColumn

        public boolean isNameColumn()
      • generateExprString

        public java.lang.String generateExprString​(SqlQuery query)
        Generates a SQL expression, which typically this looks like this: tableName.columnName.
      • getCardinality

        public int getCardinality()
        Get column cardinality from the schema cache if possible; otherwise issue a select count(distinct) query to retrieve the cardinality and stores it in the cache.
        Returns:
        the column cardinality.
      • createInExpr

        public static java.lang.String createInExpr​(java.lang.String expr,
                                                    StarColumnPredicate predicate,
                                                    Dialect.Datatype datatype,
                                                    SqlQuery sqlQuery)
        Generates a predicate that a column matches one of a list of values.

        Several possible outputs, depending upon whether the there are nulls:

        • One not-null value: foo.bar = 1
        • All values not null: foo.bar in (1, 2, 3)
        • Null and not null values: (foo.bar is null or foo.bar in (1, 2))
        • Only null values: foo.bar is null
        • String values: foo.bar in ('a', 'b', 'c')
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • print

        public void print​(java.io.PrintWriter pw,
                          java.lang.String prefix)
        Prints this column.
        Parameters:
        pw - Print writer
        prefix - Prefix to print first, such as spaces for indentation
      • getDatatypeString

        public java.lang.String getDatatypeString​(Dialect dialect)
        Returns a string representation of the datatype of this column, in the dialect specified. For example, 'DECIMAL(10, 2) NOT NULL'.
        Parameters:
        dialect - Dialect
        Returns:
        String representation of column's datatype