Support `LOG` and `ROUND` scalar functions with two arguments in the SQL API
- Dominant language
- Rust
- Stars
- 20.8k
- Forks
- 2.1k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 181
Description
**Describe the bug**
Earlier, support for `LOG` and `ROUND` scalar functions with two arguments was added in https://github.com/cube-js/arrow-datafusion/pull/135. However, the second argument type was specified as `Int32`. It allows it to match columns but prevents from matching integer literals.
**To Reproduce**
Query generated by QuickSight:
```sql
SELECT
date_trunc(\'day\', "period") AS period_tg",
SUM("clicks") AS clicks_sum",
ROUND(CAST(CAST(SUM("clicks") - (MIN(SUM("clicks")) OVER ()) AS FLOAT) / NULLIF(CAST((MAX(SUM("clicks")) OVER ()) - (MIN(SUM("clicks")) OVER ()) AS FLOAT), 0) AS NUMERIC), 3) AS "68c185d7-907c-3bb3-97f2-ec592e580dc0"
FROM "public"."revenue"
GROUP BY date_trunc(\'day\', "period")
ORDER BY date_trunc(\'day\', "period") NULLS FIRST
LIMIT 500
```
Casting the second argument by doing `round(3.142, cast(1 as integer))` works but since the BI tool is generating the query, there no actual control over the second argument.
**Expected behavior**
`LOG` and `ROUND` should work with integer literals as the second argument. They are indeed matched as `Int64` values, as confirmed by @MazterQyou.
**Version:**
1.1.0
**Additional context**
Slack thread: https://cube-js.slack.com/archives/C01FU5AP9LJ/p1727956303761059
Contributor guide
Assessment
This issue has not been assessed yet.