on dev help sign in
remove non nil scrapping experimental code
3b15f10Eitan Chatav
squeal-postgresql/src/Squeal/PostgreSQL/Query.hs−28
@@ -27,9 +27,6 @@ Squeal queries.
27module Squeal.PostgreSQL.Query
27module Squeal.PostgreSQL.Query
28 ( -- * Queries
28 ( -- * Queries
29 Query (UnsafeQuery, renderQuery)
29 Query (UnsafeQuery, renderQuery)
30− , Query'
31− , QueryFrom (..)
32− , queryFrom
33 , union
30 , union
34 , unionAll
31 , unionAll
35 , intersect
32 , intersect
@@ -79,9 +76,7 @@ module Squeal.PostgreSQL.Query
79
76
80import Control.DeepSeq
77import Control.DeepSeq
81import Data.ByteString (ByteString)
78import Data.ByteString (ByteString)
82−import Data.Kind
83import Data.Monoid hiding (All)
79import Data.Monoid hiding (All)
84−import Data.Profunctor
85import Data.String
80import Data.String
86import Data.Word
81import Data.Word
87import Generics.SOP hiding (from)
82import Generics.SOP hiding (from)
@@ -89,7 +84,6 @@ import GHC.TypeLits
89
84
90import qualified GHC.Generics as GHC
85import qualified GHC.Generics as GHC
91
86
92−import Squeal.PostgreSQL.Binary
93import Squeal.PostgreSQL.Expression
87import Squeal.PostgreSQL.Expression
94import Squeal.PostgreSQL.Render
88import Squeal.PostgreSQL.Render
95import Squeal.PostgreSQL.Schema
89import Squeal.PostgreSQL.Schema
@@ -293,28 +287,6 @@ newtype Query
293 deriving (GHC.Generic,Show,Eq,Ord,NFData)
287 deriving (GHC.Generic,Show,Eq,Ord,NFData)
294instance RenderSQL (Query schema params columns) where renderSQL = renderQuery
288instance RenderSQL (Query schema params columns) where renderSQL = renderQuery
295
289
296−data QueryFrom
297− (schema :: SchemaType)
298− (x :: Type)
299− (y :: Type)
300− where
301− QueryFrom
302− :: (x -> NP (K (Maybe ByteString)) params)
303− -> Query schema params result
304− -> (NP (K (Maybe ByteString)) result -> y)
305− -> QueryFrom schema x y
306−instance Profunctor (QueryFrom schema) where
307− dimap f g (QueryFrom params q result) = QueryFrom (params.f) q (g.result)
308−
309−queryFrom
310− :: (ToParams x (ParamsFrom x), FromRow (ResultFrom y) y)
311− => Query schema (ParamsFrom x) (ResultFrom y)
312− -> QueryFrom schema x y
313−queryFrom q = QueryFrom toParams q fromRow
314−
315−type family Query' schema x y where
316− Query' schema x y = Query schema (ParamsFrom x) (ResultFrom y)
317−
318-- | The results of two queries can be combined using the set operation
290-- | The results of two queries can be combined using the set operation
319-- `union`. Duplicate rows are eliminated.
291-- `union`. Duplicate rows are eliminated.
320union
292union
squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs+2−9
@@ -120,8 +120,6 @@ module Squeal.PostgreSQL.Schema
120 , RecordCodeOf
120 , RecordCodeOf
121 , MapMaybes (..)
121 , MapMaybes (..)
122 , Nulls
122 , Nulls
123− , ParamsFrom
124− , ResultFrom
125 ) where
123 ) where
126
124
127import Control.DeepSeq
125import Control.DeepSeq
@@ -402,11 +400,12 @@ instance (alias0 ~ alias1, alias0 ~ alias2, KnownSymbol alias2)
402 => IsLabel alias0 (Aliased Alias (alias1 ::: alias2)) where
400 => IsLabel alias0 (Aliased Alias (alias1 ::: alias2)) where
403 fromLabel = fromLabel @alias2 `As` fromLabel @alias1
401 fromLabel = fromLabel @alias2 `As` fromLabel @alias1
404
402
403+-- | The `Aliasable` class provides a way to scrap your `Nil`s
404+-- in an `NP` list of `Aliased` expressions.
405class KnownSymbol alias => Aliasable alias expression aliased
405class KnownSymbol alias => Aliasable alias expression aliased
406 | aliased -> expression
406 | aliased -> expression
407 , aliased -> alias
407 , aliased -> alias
408 where as :: expression -> Alias alias -> aliased
408 where as :: expression -> Alias alias -> aliased
409−
410instance (alias ~ alias1, KnownSymbol alias) => Aliasable alias
409instance (alias ~ alias1, KnownSymbol alias) => Aliasable alias
411 (expression ty)
410 (expression ty)
412 (Aliased expression (alias1 ::: ty))
411 (Aliased expression (alias1 ::: ty))
@@ -866,9 +865,3 @@ type family RecordCodeOf (hask :: Type) (code ::[[Type]]) :: [Type] where
866 RecordCodeOf _hask '[tys] = tys
865 RecordCodeOf _hask '[tys] = tys
867 RecordCodeOf hask _tys = TypeError
866 RecordCodeOf hask _tys = TypeError
868 ('Text "RecordCodeOf error: non-Record type " ':<>: 'ShowType hask)
867 ('Text "RecordCodeOf error: non-Record type " ':<>: 'ShowType hask)
869−
870−type family ParamsFrom (hask :: Type) :: [NullityType] where
871− ParamsFrom hask = NullityTypesOf (RecordCodeOf hask (Code hask))
872−
873−type family ResultFrom (hask :: Type) :: RelationType where
874− ResultFrom hask = ZipAs (FieldNamesFrom hask) (ParamsFrom hask)