git.iko.soy/typeable/postgresql-simple
on master help sign in
Seemingly working ARRAY[...] pretty printing.
8a24148Jason Dusek
src/Database/PostgreSQL/Simple/ToField.hs+10
@@ -36,6 +36,8 @@ import Database.PostgreSQL.Simple.Types (Binary(..), In(..), Null)
36import qualified Blaze.ByteString.Builder.Char.Utf8 as Utf8
36import qualified Blaze.ByteString.Builder.Char.Utf8 as Utf8
37import qualified Data.ByteString as SB
37import qualified Data.ByteString as SB
38import qualified Data.ByteString.Lazy as LB
38import qualified Data.ByteString.Lazy as LB
39+import Data.Foldable (toList)
40+import Data.Sequence (Seq)
39import qualified Data.Text as ST
41import qualified Data.Text as ST
40import qualified Data.Text.Encoding as ST
42import qualified Data.Text.Encoding as ST
41import qualified Data.Text.Lazy as LT
43import qualified Data.Text.Lazy as LT
@@ -221,6 +223,14 @@ instance ToField Date where
221 toField = Plain . inQuotes . dateToBuilder
223 toField = Plain . inQuotes . dateToBuilder
222 {-# INLINE toField #-}
224 {-# INLINE toField #-}
223
225
226+instance (ToField a) => ToField (Seq a) where
227+ toField xs = Many $
228+ Plain (fromByteString "ARRAY[") :
229+ (intersperse (Plain (fromChar ',')) . map toField $ toList xs) ++
230+ [Plain (fromChar ']')]
231+ -- Because the ARRAY[...] input syntax is being used, it is possible
232+ -- that the use of type-specific separator characters is unnecessary.
233+
224-- | Surround a string with single-quote characters: \"@'@\"
234-- | Surround a string with single-quote characters: \"@'@\"
225--
235--
226-- This function /does not/ perform any other escaping.
236-- This function /does not/ perform any other escaping.