Hello,
To ensure conditions are delegated from Cognos to Denodo, in Cognos create the filters for the report before adding the query items. For instance, if a report is created over a Denodo table called "address" by first inserting the table into the report and then adding a filter over the field "city", this is the query that hits Denodo:
select `address`.`client_identifier` as `client_identifier` , `address`.`street` as `street` , `address`.`city` as `city` , `address`.`zip` as `zip` , `address`.`state` as `state5` , `address`.`primary_phone` as `primary_phone` , `address`.`country` as `country` from `address` `address` context ('i18n' = 'us_pst' )
However, if a report is created over that "address" table by first creating the filter for field "city" and then inserting the table into the report, this query hits Denodo:
select `address`.`client_identifier` as `client_identifier` , `address`.`street` as `street` , `address`.`city` as `city` , `address`.`zip` as `zip` , `address`.`state` as `state5` , `address`.`primary_phone` as `primary_phone` , `address`.`country` as `country` from `address` `address` where `address`.`city` in ('Abington', 'Akron') context ('i18n' = 'us_pst' )
Notice in the second query the condition is delegated so only data for the cities of Abington and Arkon are returned to Cognos. For more information regarding this behavior, refer to the "Filter First" section of this Cognos documentation:
http://www.ibm.com/developerworks/data/library/cognos/modeling/design/page491.html
Once the query hits VDP, Denodo's query optimizer considers the query capabilities of TerdaData and, when possible, pushes the the processing of some operations to the data source.
Hope this answers your question!