@@ -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 #-}
226+instance (ToField a) => ToField (Seq a) where
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.
224-- | Surround a string with single-quote characters: \"@'@\"
234-- | Surround a string with single-quote characters: \"@'@\"
226-- This function /does not/ perform any other escaping.
236-- This function /does not/ perform any other escaping.