1. A method for executing a query, comprising: identifying a set of algebraic rules applicable to the query, wherein each of the algebraic rules represents a relationship between two columns in a relational database table; identifying a source column by searching the query for a source predicate, wherein the source predicate is a range predicate; identifying one or more candidate target columns by searching the set of algebraic rules, wherein each of the candidate target columns occurs on one side of a binding expression and the source column occurs on the other side of the binding expression; and for each of the one or more candidate target columns, deriving a bounds subquery that provides a lower bound and an upper bound for a new range predicate; and introducing the new range predicate into the query, wherein the query is executed to retrieve data from one or more data stores.