The main goal of this project is to add the following optimization of the queries that use non-mergeable views and/or derived tables. The conditions in the where clause of such a query that depend only on the columns of non-mergable view/derived tables are pushed into the query defining this view/derived table. This project will cover simple cases with pushing separable condition as well as more complicated cases with pushing non-separable conditions. It will resolve the problem of extracting pushable conditions by using equality predicates. It also will detect separable pushable conditions that can be extracted by using the basic properties of comparison predicates.