git.iko.soy/typeable/postgresql-simple
on master help sign in
Seemingly working ARRAY[...] pretty printing.
commit8a24148a8f8e43e5dfc6f93963043d77a2c708c3 authorJason Dusek <jason.dusek@gmail.com> dateWed 15 Aug 2012, 09:03 (14 years ago) parent6d46bc7
1 file changed+10
src/Database/PostgreSQL/Simple/ToField.hs+10
src/Database/PostgreSQL/Simple/ToField.hs+10
@@ -36,6 +36,8 @@ import Database.PostgreSQL.Simple.Types (Binary(..), In(..), Null)
3636import qualified Blaze.ByteString.Builder.Char.Utf8 as Utf8
3737import qualified Data.ByteString as SB
3838import qualified Data.ByteString.Lazy as LB
39+import Data.Foldable (toList)
40+import Data.Sequence (Seq)
3941import qualified Data.Text as ST
4042import qualified Data.Text.Encoding as ST
4143import qualified Data.Text.Lazy as LT
@@ -221,6 +223,14 @@ instance ToField Date where
221223 toField = Plain . inQuotes . dateToBuilder
222224 {-# INLINE toField #-}
223225
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+
224234-- | Surround a string with single-quote characters: \"@'@\"
225235--
226236-- This function /does not/ perform any other escaping.