@@ -397,6 +397,11 @@ instance {-# OVERLAPPING #-} ToArray x array
397397 toArray = K . Encoding.dimensionArray Vector.foldl'
398398 (unK . toArray @x @array)
399399 baseOid = baseOid @x @array
400+instance {-# OVERLAPPING #-} ToArray x array
401+ => ToArray (Vector x) ('Null ('PGvararray array)) where
402+ toArray = K . Encoding.dimensionArray Vector.foldl'
403+ (unK . toArray @x @array)
404+ baseOid = baseOid @x @array
400405instance {-# OVERLAPPING #-}
401406 ( IsProductType product xs
402407 , Length xs ~ n
@@ -406,6 +411,15 @@ instance {-# OVERLAPPING #-}
406411 toArray = K . Encoding.dimensionArray foldlN
407412 (unK . toArray @x @array) . unZ . unSOP . from
408413 baseOid = baseOid @x @array
414+instance {-# OVERLAPPING #-}
415+ ( IsProductType product xs
416+ , Length xs ~ n
417+ , All ((~) x) xs
418+ , ToArray x array )
419+ => ToArray product ('Null ('PGfixarray n array)) where
420+ toArray = K . Encoding.dimensionArray foldlN
421+ (unK . toArray @x @array) . unZ . unSOP . from
422+ baseOid = baseOid @x @array
409423
410424-- | A `ToParams` constraint generically sequences the encodings of `Type`s
411425-- of the fields of a tuple or record to a row of `ColumnType`s. You should
@@ -558,6 +572,10 @@ instance {-# OVERLAPPING #-} FromArray array y
558572 => FromArray ('NotNull ('PGvararray array)) (Vector y) where
559573 fromArray =
560574 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
575+instance {-# OVERLAPPING #-} FromArray array y
576+ => FromArray ('Null ('PGvararray array)) (Vector y) where
577+ fromArray =
578+ Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
561579instance {-# OVERLAPPING #-}
562580 ( FromArray array y
563581 , All ((~) y) ys
@@ -569,6 +587,17 @@ instance {-# OVERLAPPING #-}
569587 rep _ = fmap (to . SOP . Z) . replicateMN
570588 in
571589 Decoding.dimensionArray rep (fromArray @array @y)
590+instance {-# OVERLAPPING #-}
591+ ( FromArray array y
592+ , All ((~) y) ys
593+ , SListI ys
594+ , IsProductType product ys )
595+ => FromArray ('Null ('PGfixarray n array)) product where
596+ fromArray =
597+ let
598+ rep _ = fmap (to . SOP . Z) . replicateMN
599+ in
600+ Decoding.dimensionArray rep (fromArray @array @y)
572601
573602-- | A `FromRow` constraint generically sequences the parsings of the columns
574603-- of a `RowType` into the fields of a record `Type` provided they have