File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -150,9 +150,18 @@ function show(io::IO, sql_expression::SQLExpression)
150150 end
151151end
152152
153+ has_select (something) = false
154+ has_select (expression:: SQLExpression ) =
155+ expression. call in (:SELECT , Symbol (" SELECT DISTINCT" ))
156+
157+ seek_select (something) = false
158+ seek_select (expression:: SQLExpression ) =
159+ has_select (expression) ||
160+ any (seek_select (clause) for clause in expression. arguments)
161+
153162# Default to * if no columns are specifcied
154163function finalize (sql_expression:: SQLExpression )
155- if sql_expression . call in ( :FROM , Symbol ( " GROUP BY " ), Symbol ( " INNER JOIN " ) )
164+ if ! seek_select (sql_expression )
156165 SQLExpression (:SELECT , sql_expression, :* )
157166 else
158167 sql_expression
Original file line number Diff line number Diff line change @@ -17,6 +17,11 @@ filename = joinpath(@__DIR__, "Chinook_Sqlite.sqlite")
1717database = Database (filename)
1818database2 = Database (DB (filename))
1919
20+ @test (database. Track |>
21+ @filter (_. AlbumId == 1 ) |>
22+ collect |>
23+ first). Name == " For Those About To Rock (We Salute You)"
24+
2025@test database. Track |>
2126 @map ({_. TrackId, _. Name, _. Composer, _. UnitPrice}) |>
2227 collect |>
You can’t perform that action at this time.
0 commit comments