Add comments here:
// Unlike a lower bound, an upper bound does not automatically filter out nulls as required by the comparison filter.
// TODO: Implement an abstract isNullable() method on AbstractExpression and use that here to optimize out the "NOT NULL" comparator for NOT NULL columns, etc.