packages feed

sqel-0.0.1.0: lib/Sqel/Sql/Select.hs

module Sqel.Sql.Select where

import Sqel.Data.QuerySchema (QuerySchema (QuerySchema))
import Sqel.Data.Sql (Sql, ToSql, sql)
import Sqel.Data.SqlFragment (Select (Select))
import Sqel.Data.TableSchema (TableSchema (TableSchema))

selectWhere ::
  ∀ proj q table .
  QuerySchema q table ->
  TableSchema proj ->
  Sql
selectWhere (QuerySchema query _) (TableSchema proj _ _) =
  [sql|##{Select proj} ##{query}|]

selectWhereGen ::
  ∀ f proj q table .
  ToSql (Select (f proj table)) =>
  QuerySchema q table ->
  f proj table ->
  Sql
selectWhereGen (QuerySchema query _) proj =
  [sql|##{Select proj} ##{query}|]