Reference Guide > Function Support for Data Sources > Pushing or Not Pushing Functions
 
Pushing or Not Pushing Functions
A large number of SQL functions can be either executed within the TDV Server or pushed down to data sources for execution.
In general it is preferable to push function execution to the data source, for faster execution and reduced data transfer. However, for various reasons, such as query federation, it may be preferable not to push function execution to the data source. Query engine execution plans, or explicit SQL query options (described in TDV Query Engine Options), might force execution in the TDV Server rather than in the data source.
Refer to TDV Support for SQL Functions, to see which functions can be executed in the TDV Server (that is, not pushed). TDV supports a wide variety of functions, although not every function available in every data source.
A few functions, such as DENSE_RANK and FIRST_VALUE, can be executed only in the data source. These are called “push-only” functions. Function Support Summary, has a column that indicates which functions are push-only.
Because data sources implement many functions differently from each other and from TDV, results of execution might not be the same. The section Function Support Issues when Combining Data Sources, discusses many of these differences.