The amount of transformation logic that you can push to the database depends on the database, transformation logic, and mapping and session configuration. The Integration Service processes all transformation logic that it cannot push to a database.
If any of the following transformation or mapping conditions is true, the Integration Service processes the logic instead of pushing it to the database:
The transformation logic updates a mapping variable and saves it to the repository database.
The transformation contains a variable port.
The transformation meets all of the following criteria:
Is not a Sorter transformation, Union transformation, or target.
Is pushed to Microsoft SQL Server, Sybase, or Teradata.
Is downstream from a Sorter transformation, which is downstream from a Union transformation or contains a distinct sort.
The session is configured to override the default values of input or output ports.
The database does not have an equivalent operator, variable, or function that is used in an expression in the transformation.
The mapping contains too many branches. When you branch a pipeline, the SQL statement required to represent the mapping logic becomes more complex. The Integration Service cannot generate an SQL query for a mapping that contains more than 64 two-way branches, 43 three-way branches, or 32 four-way branches. If the number of branches exceeds these limitations, the Integration Service processes the downstream transformations.
If any of the following session properties is true, the Integration Service processes the logic instead of pushing it to the database:
The session is a debug session.
The session is configured to log row errors.
If all the preceding conditions are false, you can see the pushdown rules for the individual transformations and databases.