sqel-0.0.1.0: test/Sqel/Test/Error/QueryColumMismatch.hs
{-# options_ghc -fdefer-type-errors -Wno-deferred-type-errors #-}
module Sqel.Test.Error.QueryColumMismatch where
import Generics.SOP (NP (Nil, (:*)))
import Prelude hiding (sum)
import Sqel.Data.QuerySchema (QuerySchema (QuerySchema))
import Sqel.Data.SelectExpr (SelectFragment)
import Sqel.Data.Uid (Uid)
import Sqel.Prim (prim, primAs)
import Sqel.Product (prod, prodAs)
import Sqel.Query (checkQuery)
import Sqel.Uid (uid)
data Pord =
Pord {
p1 :: Int,
p2 :: Text
}
deriving stock (Eq, Show, Generic)
data Q =
Q {
n :: Text,
pr :: Pord
}
deriving stock (Eq, Show, Generic)
data Dat =
Dat {
name :: Text,
po :: Pord
}
deriving stock (Eq, Show, Generic)
queryColumnMismatch :: [SelectFragment]
queryColumnMismatch =
frags
where
QuerySchema !frags _ = checkQuery qd td :: QuerySchema Q (Uid Int64 Dat)
qd =
prod (primAs @"name" :* (prodAs @"pog" (prim :* prim :* Nil)) :* Nil)
td =
uid prim (prod (prim :* (prod (prim :* prim :* Nil)) :* Nil))