QualifiedNameReference reference = extractReference(comparison);
Symbol symbol = Symbol.fromQualifiedName(reference.getName());
ConnectorColumnHandle column = symbolToColumnName.get(symbol);
if (column != null) {
Literal literal = extractLiteral(comparison);
Object value;
if (literal instanceof DoubleLiteral) {
value = ((DoubleLiteral) literal).getValue();
}
else if (literal instanceof LongLiteral) {
value = ((LongLiteral) literal).getValue();
}
else if (literal instanceof StringLiteral) {
value = ((StringLiteral) literal).getValue();
}
else if (literal instanceof BooleanLiteral) {
value = ((BooleanLiteral) literal).getValue();
}
else {
throw new AssertionError(String.format("Literal type (%s) not currently handled", literal.getClass().getName()));
}
// if there is a different constant value already bound for this column, the expression will always be false
Object previous = bindings.get(column);
if (previous != null && !previous.equals(value)) {