MechanicalRabbit / FunSQL.jl

Julia library for compositional construction of SQL queries
https://mechanicalrabbit.github.io/FunSQL.jl
Other
146 stars 6 forks source link

do not collapse Define nodes #11

Closed xitology closed 1 year ago

xitology commented 2 years ago
using FunSQL: SQLTable, From, Select, Join, Where, Group, Define, Fun, Get, Agg, render
person = SQLTable(:person, :person_id, :year_of_birth, :location_id)
q = Define(:complex_expression => From(person) |> Group() |> Select(Agg.count())) |>
    Select(Get.complex_expression .+ Get.complex_expression)
print(render(q))
#=>
SELECT ((
  SELECT COUNT(*) AS "count"
  FROM "person" AS "person_1"
) + (
  SELECT COUNT(*) AS "count"
  FROM "person" AS "person_1"
)) AS "+"
=#
xitology commented 1 year ago

Fixed in https://github.com/MechanicalRabbit/FunSQL.jl/pull/37

print(render(q))
#=>
SELECT ("__1"."complex_expression" + "__1"."complex_expression") AS "+"
FROM (
  SELECT (
    SELECT COUNT(*) AS "count"
    FROM "person" AS "person_1"
  ) AS "complex_expression"
) AS "__1"
=#