1. A computer implemented method, comprising: determining, by at least one processor, a presence of a disjunction expression in a complex query expression, the disjunction expression including a disjunctive operator and a plurality of disjunctive conditions, wherein the complex query expression comprises a conjunction expression including a conjunction operator, the disjunction expression, and one or more conjunctive conditions that precede the disjunction expression; receiving, in response to the determining, by the at least one processor, a restriction bitmap for each disjunction expression in the complex query expression, the restriction bitmap representing a set of rows that have satisfied the one or more preceding conjunctive conditions, wherein a bit from the restriction bitmap represents whether a respective row has satisfied the one or more preceding conjunctive conditions; determining whether respective cost savings justify restricting evaluation of each disjunctive condition from the plurality of disjunctive conditions using the restriction bitmap; responsive to determining that a disjunctive condition from the plurality of disjunctive conditions has a respective cost saving that justifies restricting evaluation, restricting, by the at least one processor, evaluation of the disjunctive condition from the plurality of disjunctive conditions to the set of rows represented by the restriction bitmap; and providing, by the at least one processor, a bitmap result of evaluating the disjunction expression, the bitmap result determined, in part, using the restricted evaluation of the disjunctive condition.
4. The method of claim 1 , further comprising reordering conjunctive conditions in the conjunction expression by placing conjunctive conditions that are disjunctions after conjunctive conditions that are not disjunctions.