@@ -397,6 +397,11 @@ instance {-# OVERLAPPING #-} ToArray x array
397 toArray = K . Encoding.dimensionArray Vector.foldl'
397 toArray = K . Encoding.dimensionArray Vector.foldl'
398 (unK . toArray @x @array)
398 (unK . toArray @x @array)
399 baseOid = baseOid @x @array
399 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
400instance {-# OVERLAPPING #-}
405instance {-# OVERLAPPING #-}
401 ( IsProductType product xs
406 ( IsProductType product xs
402 , Length xs ~ n
407 , Length xs ~ n
@@ -406,6 +411,15 @@ instance {-# OVERLAPPING #-}
406 toArray = K . Encoding.dimensionArray foldlN
411 toArray = K . Encoding.dimensionArray foldlN
407 (unK . toArray @x @array) . unZ . unSOP . from
412 (unK . toArray @x @array) . unZ . unSOP . from
408 baseOid = baseOid @x @array
413 baseOid = baseOid @x @array
414+instance {-# OVERLAPPING #-}
415+ ( IsProductType product xs
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
410-- | A `ToParams` constraint generically sequences the encodings of `Type`s
424-- | A `ToParams` constraint generically sequences the encodings of `Type`s
411-- of the fields of a tuple or record to a row of `ColumnType`s. You should
425-- 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
558 => FromArray ('NotNull ('PGvararray array)) (Vector y) where
572 => FromArray ('NotNull ('PGvararray array)) (Vector y) where
559 fromArray =
573 fromArray =
560 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
574 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
575+instance {-# OVERLAPPING #-} FromArray array y
576+ => FromArray ('Null ('PGvararray array)) (Vector y) where
578+ Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
561instance {-# OVERLAPPING #-}
579instance {-# OVERLAPPING #-}
562 ( FromArray array y
580 ( FromArray array y
563 , All ((~) y) ys
581 , All ((~) y) ys
@@ -569,6 +587,17 @@ instance {-# OVERLAPPING #-}
569 rep _ = fmap (to . SOP . Z) . replicateMN
587 rep _ = fmap (to . SOP . Z) . replicateMN
571 Decoding.dimensionArray rep (fromArray @array @y)
589 Decoding.dimensionArray rep (fromArray @array @y)
590+instance {-# OVERLAPPING #-}
594+ , IsProductType product ys )
595+ => FromArray ('Null ('PGfixarray n array)) product where
598+ rep _ = fmap (to . SOP . Z) . replicateMN
600+ Decoding.dimensionArray rep (fromArray @array @y)
573-- | A `FromRow` constraint generically sequences the parsings of the columns
602-- | A `FromRow` constraint generically sequences the parsings of the columns
574-- 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