Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support LOG and ROUND scalar functions with two arguments in the SQL API #8905

Open
igorlukanin opened this issue Nov 4, 2024 · 0 comments
Assignees
Labels
api:sql Issues related to SQL API bug Something isn't working

Comments

@igorlukanin
Copy link
Member

Describe the bug
Earlier, support for LOG and ROUND scalar functions with two arguments was added in cube-js/arrow-datafusion#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:

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api:sql Issues related to SQL API bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants