We recently started using a Postgres connection in Denodo. We've noticed that on larger datasets (particularly in joins) that performance is impacted when using the ADDMONTH function. ADDMONTH can't be delegated to the data source since it's not a Postgres function. Larger datasets must handle the ADDMONTH at the Denodo engine level which impacts performance. This is expected.
However, we found that the ADDDAY function does delegate to the data source, even though ADDDAY is not a Postgres function. The adapter translates ADDDAY to " + INTERVAL 'x day' ", like below:
SELECT t0.create_date AS create_date, (t0.create_date + (? * interval '1 day')) AS dd FROM postgresdbname.table t0
Why does the adapter translate ADDDAY properly, but not ADDMONTH? Is this a custom scalar function built into the Denodo engine? If so, how can we get Denodo to add the other Postgres ADD functions to translate properly as well?