@@ -398,9 +398,9 @@ instance {-# OVERLAPPING #-} ToArray x array
398 (unK . toArray @x @array)
398 (unK . toArray @x @array)
399 baseOid = baseOid @x @array
399 baseOid = baseOid @x @array
400instance {-# OVERLAPPING #-} ToArray x array
400instance {-# OVERLAPPING #-} ToArray x array
401− => ToArray (Vector x) ('Null ('PGvararray array)) where
401+ => ToArray (Maybe (Vector x)) ('Null ('PGvararray array)) where
402+ toArray = K . maybe Encoding.nullArray
402− toArray = K . Encoding.dimensionArray Vector.foldl'
403+ (Encoding.dimensionArray Vector.foldl' (unK . toArray @x @array))
403− (unK . toArray @x @array)
404 baseOid = baseOid @x @array
404 baseOid = baseOid @x @array
405instance {-# OVERLAPPING #-}
405instance {-# OVERLAPPING #-}
406 ( IsProductType product xs
406 ( IsProductType product xs
@@ -416,9 +416,9 @@ instance {-# OVERLAPPING #-}
416 , Length xs ~ n
416 , Length xs ~ n
417 , All ((~) x) xs
417 , All ((~) x) xs
418 , ToArray x array )
418 , ToArray x array )
419− => ToArray product ('Null ('PGfixarray n array)) where
419+ => ToArray (Maybe product) ('Null ('PGfixarray n array)) where
420− toArray = K . Encoding.dimensionArray foldlN
420+ toArray = K . maybe Encoding.nullArray
421− (unK . toArray @x @array) . unZ . unSOP . from
421+ (Encoding.dimensionArray foldlN (unK . toArray @x @array) . unZ . unSOP . from)
422 baseOid = baseOid @x @array
422 baseOid = baseOid @x @array
424-- | A `ToParams` constraint generically sequences the encodings of `Type`s
424-- | A `ToParams` constraint generically sequences the encodings of `Type`s
@@ -573,8 +573,8 @@ instance {-# OVERLAPPING #-} FromArray array y
573 fromArray =
573 fromArray =
574 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
574 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
575instance {-# OVERLAPPING #-} FromArray array y
575instance {-# OVERLAPPING #-} FromArray array y
576− => FromArray ('Null ('PGvararray array)) (Vector y) where
576+ => FromArray ('Null ('PGvararray array)) (Maybe (Vector y)) where
577− fromArray =
577+ fromArray = Just <$>
578 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
578 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
579instance {-# OVERLAPPING #-}
579instance {-# OVERLAPPING #-}
580 ( FromArray array y
580 ( FromArray array y
@@ -592,12 +592,12 @@ instance {-# OVERLAPPING #-}
592 , All ((~) y) ys
592 , All ((~) y) ys
593 , SListI ys
593 , SListI ys
594 , IsProductType product ys )
594 , IsProductType product ys )
595− => FromArray ('Null ('PGfixarray n array)) product where
595+ => FromArray ('Null ('PGfixarray n array)) (Maybe product) where
596 fromArray =
596 fromArray =
598 rep _ = fmap (to . SOP . Z) . replicateMN
598 rep _ = fmap (to . SOP . Z) . replicateMN
600− Decoding.dimensionArray rep (fromArray @array @y)
600+ Just <$> Decoding.dimensionArray rep (fromArray @array @y)
602-- | A `FromRow` constraint generically sequences the parsings of the columns
602-- | A `FromRow` constraint generically sequences the parsings of the columns
603-- of a `RowType` into the fields of a record `Type` provided they have
603-- of a `RowType` into the fields of a record `Type` provided they have