@@ -7,6 +7,7 @@ module Database.PostgreSQL.Query.Types
7
7
, runPgMonadT
8
8
, launchPG
9
9
-- * Auxiliary types
10
+ , Qp (.. )
10
11
, InetText (.. )
11
12
, FN (.. )
12
13
, textFN
@@ -43,24 +44,21 @@ import Data.String
43
44
import Data.Text ( Text )
44
45
import Data.Typeable
45
46
import Database.PostgreSQL.Query.SqlBuilder
46
- ( ToSqlBuilder (.. ), SqlBuilder (.. ) )
47
47
import Database.PostgreSQL.Query.TH.SqlExp
48
- ( sqlExp )
49
48
import Database.PostgreSQL.Simple
50
49
import Database.PostgreSQL.Simple.FromField
51
- ( FromField (.. ), typename , returnError )
52
50
import Database.PostgreSQL.Simple.ToField
53
- ( ToField )
54
51
import Database.PostgreSQL.Simple.Types
55
52
import GHC.Generics
56
53
import Instances.TH.Lift ()
57
54
import Language.Haskell.TH.Lift ( deriveLift )
58
55
59
- import qualified Data.List as L
56
+ import qualified Blaze.ByteString.Builder.ByteString as BB
60
57
import qualified Control.Monad.Trans.State.Lazy as STL
61
58
import qualified Control.Monad.Trans.State.Strict as STS
62
59
import qualified Control.Monad.Trans.Writer.Lazy as WL
63
60
import qualified Control.Monad.Trans.Writer.Strict as WS
61
+ import qualified Data.List as L
64
62
import qualified Data.Text as T
65
63
import qualified Data.Text.Encoding as T
66
64
@@ -71,6 +69,13 @@ import qualified Data.Text.Encoding as T
71
69
-}
72
70
73
71
72
+ -- | Special constructor to perform old-style query interpolation
73
+ data Qp = forall row . (ToRow row ) => Qp Query row
74
+
75
+ instance ToSqlBuilder Qp where
76
+ toSqlBuilder (Qp q row) = SqlBuilder $ \ con _ ->
77
+ builderResultPure . BB. fromByteString <$> formatQuery con q row
78
+
74
79
-- | type to put and get from db 'inet' and 'cidr' typed postgresql
75
80
-- fields. This should be in postgresql-simple in fact.
76
81
newtype InetText = InetText
0 commit comments