Sorry, I meant CEIL. We do support CEIL(timestamp, day, 1). 

One can construct CeilTimestampExpression or RoundTimestampExpression by not going through the built in functions CEIL or ROUND. For ex - in case of RowValueConstructorExpression when we need to do the CEIL on timestamp. While going through the RoundParseNode, we can look at data types and the timeunit value to decide which expression we should instantiate. Like this:

<code>
if(firstChildDataType == PDataType.TIMESTAMP) {
            if(tu == TimeUnit.MILLISECOND) {
                return new RoundTimestampExpression(children);
            }
            return new RoundDateExpression(children);
        }
</code>

But when one is instantiating a RoundTimestamp or a CeilTimestamp expression directly, we would need to support all the time units.