OK, please log a jira case. Please describe cases where it should give an error. Describe any pertinent flags.
> On May 29, 2024, at 8:58 AM, Itiel Sadeh <iti...@sqreamtech.com.INVALID> > wrote: > > Thanks for the response Julian. > > I agree that it is a pretty unuseful use case, but it is a valid SQL as far > as I can tell. PostgreSQL does support it. > Maybe Calcite shouldn't support it, but I think that the error message is a > bit unintuitive in this case. > > Thanks again, > Itiel > > On Tue, May 28, 2024 at 10:02 PM Julian Hyde <jhyde.apa...@gmail.com> wrote: > >> It doesn’t seem particularly useful to use “*” in a “GROUP BY” query. The >> query will be invalid if you don’t include all the columns in the GROUP BY >> clause. >> >> (In a few databases, one of which is MySQL, the query “SELECT empno, >> deptno, sal FROM emp GROUP BY empno” would be valid if “empno” is a primary >> key and the DBMS recognizes functionally dependent columns. But Calcite >> does not do this.) >> >> Do any other DBMSs support “*” in “GROUP BY” queries? >> >>> Is the issue above a bug? >> >> No, it is not a bug. It may be a missing feature. This discussion will >> decide whether it is desirable feature. >> >>> If so, can we do the star expansion before the GROUP BY validation? >>> And when can a select item is depends on the GROUP BY list? >> >> >> Probably not. If you change the order of expansion, a lot of things that >> used to work will stop working. I think that this fix will be tricky to >> accomplish. >> >> Julian >> >> >>> On May 28, 2024, at 12:22 AM, Itiel Sadeh <iti...@sqreamtech.com.INVALID> >> wrote: >>> >>> Hello calcite team, >>> >>> Consider the following: >>> Let's say I have a table "t" with two columns: >>> "CREATE TABLE t(x int, y int);" >>> >>> Now, the following query will result in validation error: >>> "SELECT * FROM t GROUP BY 1,2", >>> But if I'm not using "*" it will work: >>> "SELECT x, y FROM t GROUP BY 1,2" >>> >>> The issue is that the group by validation happens before we do star >>> expansion. >>> Note that ORDER BY doesn't have the same issue, as the ORDER BY >> validation >>> happens after star expansion. >>> >>> The star expansion is done inside `ValidateSelectList`, and there is a >>> comment above stating that: >>> >>>> // Validate the SELECT clause late, because a select item might >>>> // depend on the GROUP BY list, or the window function might >> reference >>>> // window name in the WINDOW clause etc. >>>> >>> >>> Given that I have 3 questions: Is the issue above a bug? >>> If so, can we do the star expansion before the GROUP BY validation? >>> And when can a select item is depends on the GROUP BY list? >>> >>> Thanks, >>> Itiel >> >>