static { declare(AggregateFcts.countRowsFunction); declare(TimeFcts.nowFct); declare(TimeFcts.minTimeuuidFct); declare(TimeFcts.maxTimeuuidFct); declare(TimeFcts.dateOfFct); declare(TimeFcts.unixTimestampOfFct); declare(TimeFcts.timeUuidtoDate); declare(TimeFcts.timeUuidToTimestamp); declare(TimeFcts.timeUuidToUnixTimestamp); declare(TimeFcts.timestampToDate); declare(TimeFcts.timestampToUnixTimestamp); declare(TimeFcts.dateToTimestamp); declare(TimeFcts.dateToUnixTimestamp); declare(UuidFcts.uuidFct); for (CQL3Type type : CQL3Type.Native.values()) { // Note: because text and varchar ends up being synonymous, our automatic makeToBlobFunction // doesn't work // for varchar, so we special case it below. We also skip blob for obvious reasons. if (type != CQL3Type.Native.VARCHAR && type != CQL3Type.Native.BLOB) { declare(BytesConversionFcts.makeToBlobFunction(type.getType())); declare(BytesConversionFcts.makeFromBlobFunction(type.getType())); } } declare(BytesConversionFcts.VarcharAsBlobFct); declare(BytesConversionFcts.BlobAsVarcharFact); for (CQL3Type type : CQL3Type.Native.values()) { // special case varchar to avoid duplicating functions for UTF8Type if (type != CQL3Type.Native.VARCHAR) { declare(AggregateFcts.makeCountFunction(type.getType())); declare(AggregateFcts.makeMaxFunction(type.getType())); declare(AggregateFcts.makeMinFunction(type.getType())); } } declare(AggregateFcts.sumFunctionForByte); declare(AggregateFcts.sumFunctionForShort); declare(AggregateFcts.sumFunctionForInt32); declare(AggregateFcts.sumFunctionForLong); declare(AggregateFcts.sumFunctionForFloat); declare(AggregateFcts.sumFunctionForDouble); declare(AggregateFcts.sumFunctionForDecimal); declare(AggregateFcts.sumFunctionForVarint); declare(AggregateFcts.sumFunctionForCounter); declare(AggregateFcts.avgFunctionForByte); declare(AggregateFcts.avgFunctionForShort); declare(AggregateFcts.avgFunctionForInt32); declare(AggregateFcts.avgFunctionForLong); declare(AggregateFcts.avgFunctionForFloat); declare(AggregateFcts.avgFunctionForDouble); declare(AggregateFcts.avgFunctionForVarint); declare(AggregateFcts.avgFunctionForDecimal); declare(AggregateFcts.avgFunctionForCounter); declare(RangeAggregateFcts.rangeAggregationFunctionForTimestampToDouble); MigrationManager.instance.register(new FunctionsMigrationListener()); }
public static Collection<AggregateFunction> all() { Collection<AggregateFunction> functions = new ArrayList<>(); functions.add(countRowsFunction); // sum for primitives functions.add(sumFunctionForByte); functions.add(sumFunctionForShort); functions.add(sumFunctionForInt32); functions.add(sumFunctionForLong); functions.add(sumFunctionForFloat); functions.add(sumFunctionForDouble); functions.add(sumFunctionForDecimal); functions.add(sumFunctionForVarint); // avg for primitives functions.add(avgFunctionForByte); functions.add(avgFunctionForShort); functions.add(avgFunctionForInt32); functions.add(avgFunctionForLong); functions.add(avgFunctionForFloat); functions.add(avgFunctionForDouble); functions.add(avgFunctionForDecimal); functions.add(avgFunctionForVarint); // count, max, and min for all standard types for (CQL3Type type : CQL3Type.Native.values()) { if (type != CQL3Type.Native.VARCHAR) // varchar and text both mapping to UTF8Type { functions.add(AggregateFcts.makeCountFunction(type.getType())); functions.add(AggregateFcts.makeMaxFunction(type.getType())); functions.add(AggregateFcts.makeMinFunction(type.getType())); } } return functions; }