@@ -142,7 +142,7 @@ unBinary (Binary x) = x
142142instance Result SB.ByteString where
143143 convert f dat = if typeOid f == builtin2oid Bytea
144144 then unBinary <$> convert f dat
145− else doConvert f okText' pure dat
145+ else doConvert f okText' (pure . B.copy) dat
146146
147147instance Result PQ.Oid where
148148 convert f dat = PQ.Oid <$> atto (mkCompat Oid) decimal f dat
@@ -159,7 +159,7 @@ unescapeBytea f str = case unsafePerformIO (PQ.unescapeBytea str) of
159159instance Result (Binary SB.ByteString) where
160160 convert f dat = case format f of
161161 PQ.Text -> doConvert f okBinary (unescapeBytea f) dat
162− PQ.Binary -> doConvert f okBinary (pure . Binary) dat
162+ PQ.Binary -> doConvert f okBinary (pure . Binary . B.copy) dat
163163
164164instance Result (Binary LB.ByteString) where
165165 convert f dat = Binary . LB.fromChunks . (:[]) . unBinary <$> convert f dat