Search in sources :

Example 1 with CompareMode

use of com.wplatform.ddal.value.CompareMode in project jdbc-shards by wplatform.

the class AggregateDataHistogram method getValue.

@Override
Value getValue(Database database, int dataType, boolean distinct) {
    if (distinct) {
        count = 0;
        groupDistinct(database, dataType);
    }
    ValueArray[] values = new ValueArray[distinctValues.size()];
    int i = 0;
    for (Value dv : distinctValues.keys()) {
        AggregateDataHistogram d = distinctValues.get(dv);
        values[i] = ValueArray.get(new Value[] { dv, ValueLong.get(d.count) });
        i++;
    }
    final CompareMode compareMode = database.getCompareMode();
    Arrays.sort(values, new Comparator<ValueArray>() {

        @Override
        public int compare(ValueArray v1, ValueArray v2) {
            Value a1 = v1.getList()[0];
            Value a2 = v2.getList()[0];
            return a1.compareTo(a2, compareMode);
        }
    });
    Value v = ValueArray.get(values);
    return v.convertTo(dataType);
}
Also used : Value(com.wplatform.ddal.value.Value) CompareMode(com.wplatform.ddal.value.CompareMode) ValueArray(com.wplatform.ddal.value.ValueArray)

Example 2 with CompareMode

use of com.wplatform.ddal.value.CompareMode in project jdbc-shards by wplatform.

the class IndexCondition method getCurrentValueList.

/**
     * Get the current value list of the expression. The value list is of the
     * same type as the column, distinct, and sorted.
     *
     * @param session the session
     * @return the value list
     */
public Value[] getCurrentValueList(Session session) {
    HashSet<Value> valueSet = new HashSet<Value>();
    for (Expression e : expressionList) {
        Value v = e.getValue(session);
        v = column.convert(v);
        valueSet.add(v);
    }
    Value[] array = new Value[valueSet.size()];
    valueSet.toArray(array);
    final CompareMode mode = session.getDatabase().getCompareMode();
    Arrays.sort(array, new Comparator<Value>() {

        @Override
        public int compare(Value o1, Value o2) {
            return o1.compareTo(o2, mode);
        }
    });
    return array;
}
Also used : Expression(com.wplatform.ddal.command.expression.Expression) Value(com.wplatform.ddal.value.Value) CompareMode(com.wplatform.ddal.value.CompareMode)

Aggregations

CompareMode (com.wplatform.ddal.value.CompareMode)2 Value (com.wplatform.ddal.value.Value)2 Expression (com.wplatform.ddal.command.expression.Expression)1 ValueArray (com.wplatform.ddal.value.ValueArray)1