Movatterモバイル変換


[0]ホーム

URL:


modulePostgreSQL.Binary.Encoding(-- * EncodingEncoding,encodingBytes,-- *array,array_foldable,array_vector,nullableArray_vector,hStore_foldable,hStore_hashMap,hStore_map,-- * Primitivesbool,int2_int16,int2_word16,int4_int32,int4_word32,int8_int64,int8_word64,float4,float8,numeric,uuid,inet,char_utf8,text_strict,text_lazy,bytea_strict,bytea_lazy,-- ** Time-- | Some of the functions in this section are distinguished based-- on the @integer_datetimes@ setting of the server.date,time_int,time_float,timetz_int,timetz_float,timestamp_int,timestamp_float,timestamptz_int,timestamptz_float,interval_int,interval_float,-- ** JSONjson_bytes,json_bytes_lazy,json_ast,jsonb_bytes,jsonb_bytes_lazy,jsonb_ast,-- * ArrayArray,encodingArray,nullArray,dimensionArray,)whereimportPostgreSQL.Binary.Preludehiding(bool,length)importqualifiedByteString.StrictBuilderasCimportqualifiedData.VectorasAimportqualifiedPostgreSQL.Binary.Encoding.BuildersasBimportqualifiedData.ByteString.BuilderasMimportqualifiedData.ByteString.LazyasNimportqualifiedData.Text.LazyasLimportqualifiedData.AesonasRimportqualifiedNetwork.IP.AddrasGtypeEncoding=C.Builder{-# INLINEencodingBytes#-}encodingBytes::Encoding->ByteStringencodingBytes :: Encoding -> ByteStringencodingBytes=Encoding -> ByteStringC.builderBytes-- * Values-------------------------{-|Turn an array builder into final value.The first parameter is OID of the element type.-}{-# INLINEarray#-}array::Word32->Array->Encodingarray :: Word32 -> Array -> EncodingarrayWord32oid(ArrayEncodingpayload[Int32]dimensionsBoolnulls)=Word32 -> [Int32] -> Bool -> Encoding -> EncodingB.arrayWord32oid[Int32]dimensionsBoolnullsEncodingpayload{-|A helper for encoding of arrays of single dimension from foldables.The first parameter is OID of the element type.-}{-# INLINEarray_foldable#-}array_foldable::Foldablefoldable=>Word32->(element->MaybeEncoding)->foldableelement->Encodingarray_foldable :: forall (foldable :: * -> *) element.Foldable foldable =>Word32-> (element -> Maybe Encoding) -> foldable element -> Encodingarray_foldableWord32oidelement -> Maybe EncodingelementBuilder=Word32 -> Array -> EncodingarrayWord32oidforall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).Category cat =>cat b c -> cat a b -> cat a c.forall a c.(forall b. (b -> a -> b) -> b -> c -> b)-> (a -> Array) -> c -> ArraydimensionArrayforall (t :: * -> *) b a.Foldable t =>(b -> a -> b) -> b -> t a -> bfoldl'(forall b a. b -> (a -> b) -> Maybe a -> bmaybeArraynullArrayEncoding -> ArrayencodingArrayforall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).Category cat =>cat b c -> cat a b -> cat a c.element -> Maybe EncodingelementBuilder){-|A helper for encoding of arrays of single dimension from vectors.The first parameter is OID of the element type.-}{-# INLINEarray_vector#-}array_vector::Word32->(element->Encoding)->Vectorelement->Encodingarray_vector :: forall element.Word32 -> (element -> Encoding) -> Vector element -> Encodingarray_vectorWord32oidelement -> EncodingelementBuilderVector elementvector=forall element.Word32 -> (element -> Encoding) -> Vector element -> EncodingB.array_vectorWord32oidelement -> EncodingelementBuilderVector elementvector{-|A helper for encoding of arrays of single dimension from vectors.The first parameter is OID of the element type.-}{-# INLINEnullableArray_vector#-}nullableArray_vector::Word32->(element->Encoding)->Vector(Maybeelement)->EncodingnullableArray_vector :: forall element.Word32-> (element -> Encoding) -> Vector (Maybe element) -> EncodingnullableArray_vectorWord32oidelement -> EncodingelementBuilderVector (Maybe element)vector=forall element.Word32-> (element -> Encoding) -> Vector (Maybe element) -> EncodingB.nullableArray_vectorWord32oidelement -> EncodingelementBuilderVector (Maybe element)vector{-|A polymorphic @HSTORE@ encoder.-}{-# INLINEhStore_foldable#-}hStore_foldable::Foldablefoldable=>foldable(Text,MaybeText)->EncodinghStore_foldable :: forall (foldable :: * -> *).Foldable foldable =>foldable (Text, Maybe Text) -> EncodinghStore_foldable=forall b.(forall a. (a -> (Text, Maybe Text) -> a) -> a -> b -> a)-> b -> EncodingB.hStoreUsingFoldlforall (t :: * -> *) b a.Foldable t =>(b -> a -> b) -> b -> t a -> bfoldl{-|@HSTORE@ encoder from HashMap.-}{-# INLINEhStore_hashMap#-}hStore_hashMap::HashMapText(MaybeText)->EncodinghStore_hashMap :: HashMap Text (Maybe Text) -> EncodinghStore_hashMap=HashMap Text (Maybe Text) -> EncodingB.hStore_hashMap{-|@HSTORE@ encoder from Map.-}{-# INLINEhStore_map#-}hStore_map::MapText(MaybeText)->EncodinghStore_map :: Map Text (Maybe Text) -> EncodinghStore_map=Map Text (Maybe Text) -> EncodingB.hStore_map-- * Primitive-------------------------{-# INLINEbool#-}bool::Bool->Encodingbool :: Bool -> Encodingbool=Bool -> EncodingB.bool{-# INLINEint2_int16#-}int2_int16::Int16->Encodingint2_int16 :: Int16 -> Encodingint2_int16=Int16 -> EncodingB.int2_int16{-# INLINEint2_word16#-}int2_word16::Word16->Encodingint2_word16 :: Word16 -> Encodingint2_word16=Word16 -> EncodingB.int2_word16{-# INLINEint4_int32#-}int4_int32::Int32->Encodingint4_int32 :: Int32 -> Encodingint4_int32=Int32 -> EncodingB.int4_int32{-# INLINEint4_word32#-}int4_word32::Word32->Encodingint4_word32 :: Word32 -> Encodingint4_word32=Word32 -> EncodingB.int4_word32{-# INLINEint8_int64#-}int8_int64::Int64->Encodingint8_int64 :: Int64 -> Encodingint8_int64=Int64 -> EncodingB.int8_int64{-# INLINEint8_word64#-}int8_word64::Word64->Encodingint8_word64 :: Word64 -> Encodingint8_word64=Word64 -> EncodingB.int8_word64{-# INLINEfloat4#-}float4::Float->Encodingfloat4 :: Float -> Encodingfloat4=Float -> EncodingB.float4{-# INLINEfloat8#-}float8::Double->Encodingfloat8 :: Double -> Encodingfloat8=Double -> EncodingB.float8{-# INLINEnumeric#-}numeric::Scientific->Encodingnumeric :: Scientific -> Encodingnumeric=Scientific -> EncodingB.numeric{-# INLINEuuid#-}uuid::UUID->Encodinguuid :: UUID -> Encodinguuid=UUID -> EncodingB.uuid{-# INLINEinet#-}inet::G.NetAddrG.IP->Encodinginet :: NetAddr IP -> Encodinginet=NetAddr IP -> EncodingB.inet{-# INLINEchar_utf8#-}char_utf8::Char->Encodingchar_utf8 :: Char -> Encodingchar_utf8=Char -> EncodingB.char_utf8{-# INLINEtext_strict#-}text_strict::Text->Encodingtext_strict :: Text -> Encodingtext_strict=Text -> EncodingB.text_strict{-# INLINEtext_lazy#-}text_lazy::L.Text->Encodingtext_lazy :: Text -> Encodingtext_lazy=Text -> EncodingB.text_lazy{-# INLINEbytea_strict#-}bytea_strict::ByteString->Encodingbytea_strict :: ByteString -> Encodingbytea_strict=ByteString -> EncodingB.bytea_strict{-# INLINEbytea_lazy#-}bytea_lazy::N.ByteString->Encodingbytea_lazy :: ByteString -> Encodingbytea_lazy=ByteString -> EncodingB.bytea_lazy{-# INLINEbytea_lazyBuilder#-}bytea_lazyBuilder::M.Builder->Encodingbytea_lazyBuilder :: Builder -> Encodingbytea_lazyBuilder=Builder -> EncodingB.bytea_lazyBuilder{-# INLINEdate#-}date::Day->Encodingdate :: Day -> Encodingdate=Day -> EncodingB.date{-# INLINEtime_int#-}time_int::TimeOfDay->Encodingtime_int :: TimeOfDay -> Encodingtime_int=TimeOfDay -> EncodingB.time_int{-# INLINEtime_float#-}time_float::TimeOfDay->Encodingtime_float :: TimeOfDay -> Encodingtime_float=TimeOfDay -> EncodingB.time_float{-# INLINEtimetz_int#-}timetz_int::(TimeOfDay,TimeZone)->Encodingtimetz_int :: (TimeOfDay, TimeZone) -> Encodingtimetz_int=(TimeOfDay, TimeZone) -> EncodingB.timetz_int{-# INLINEtimetz_float#-}timetz_float::(TimeOfDay,TimeZone)->Encodingtimetz_float :: (TimeOfDay, TimeZone) -> Encodingtimetz_float=(TimeOfDay, TimeZone) -> EncodingB.timetz_float{-# INLINEtimestamp_int#-}timestamp_int::LocalTime->Encodingtimestamp_int :: LocalTime -> Encodingtimestamp_int=LocalTime -> EncodingB.timestamp_int{-# INLINEtimestamp_float#-}timestamp_float::LocalTime->Encodingtimestamp_float :: LocalTime -> Encodingtimestamp_float=LocalTime -> EncodingB.timestamp_float{-# INLINEtimestamptz_int#-}timestamptz_int::UTCTime->Encodingtimestamptz_int :: UTCTime -> Encodingtimestamptz_int=UTCTime -> EncodingB.timestamptz_int{-# INLINEtimestamptz_float#-}timestamptz_float::UTCTime->Encodingtimestamptz_float :: UTCTime -> Encodingtimestamptz_float=UTCTime -> EncodingB.timestamptz_float{-# INLINEinterval_int#-}interval_int::DiffTime->Encodinginterval_int :: DiffTime -> Encodinginterval_int=DiffTime -> EncodingB.interval_int{-# INLINEinterval_float#-}interval_float::DiffTime->Encodinginterval_float :: DiffTime -> Encodinginterval_float=DiffTime -> EncodingB.interval_float{-# INLINEjson_bytes#-}json_bytes::ByteString->Encodingjson_bytes :: ByteString -> Encodingjson_bytes=ByteString -> EncodingB.json_bytes{-# INLINEjson_bytes_lazy#-}json_bytes_lazy::N.ByteString->Encodingjson_bytes_lazy :: ByteString -> Encodingjson_bytes_lazy=ByteString -> EncodingB.json_bytes_lazy{-# INLINEjson_ast#-}json_ast::R.Value->Encodingjson_ast :: Value -> Encodingjson_ast=Value -> EncodingB.json_ast{-# INLINEjsonb_bytes#-}jsonb_bytes::ByteString->Encodingjsonb_bytes :: ByteString -> Encodingjsonb_bytes=ByteString -> EncodingB.jsonb_bytes{-# INLINEjsonb_bytes_lazy#-}jsonb_bytes_lazy::N.ByteString->Encodingjsonb_bytes_lazy :: ByteString -> Encodingjsonb_bytes_lazy=ByteString -> EncodingB.jsonb_bytes_lazy{-# INLINEjsonb_ast#-}jsonb_ast::R.Value->Encodingjsonb_ast :: Value -> Encodingjsonb_ast=Value -> EncodingB.jsonb_ast-- * Array-------------------------{-|Abstraction for encoding into multidimensional array.-}dataArray=Array!Encoding![Int32]!BoolencodingArray::Encoding->ArrayencodingArray :: Encoding -> ArrayencodingArrayEncodingvalue=Encoding -> [Int32] -> Bool -> ArrayArray(Encoding -> EncodingB.sizedEncodingvalue)[]BoolFalsenullArray::ArraynullArray :: ArraynullArray=Encoding -> [Int32] -> Bool -> ArrayArrayEncodingB.null4[]BoolTruedimensionArray::(forallb.(b->a->b)->b->c->b)->(a->Array)->c->ArraydimensionArray :: forall a c.(forall b. (b -> a -> b) -> b -> c -> b)-> (a -> Array) -> c -> ArraydimensionArrayforall b. (b -> a -> b) -> b -> c -> bfoldl'a -> ArrayelementArraycinput=Encoding -> [Int32] -> Bool -> ArrayArrayEncodingbuilder[Int32]dimensionsBoolnullswheredimensions :: [Int32]dimensions=Int32foldedLengthforall a. a -> [a] -> [a]:[Int32]foldedDimensions(Encodingbuilder,[Int32]foldedDimensions,Int32foldedLength,Boolnulls)=forall b. (b -> a -> b) -> b -> c -> bfoldl'(Encoding, [Int32], Int32, Bool)-> a -> (Encoding, [Int32], Int32, Bool)stepforall {a} {c} {a}. (Monoid a, Num c) => (a, [a], c, Bool)initcinputwhereinit :: (a, [a], c, Bool)init=(forall a. Monoid a => amempty,[],c0,BoolFalse)step :: (Encoding, [Int32], Int32, Bool)-> a -> (Encoding, [Int32], Int32, Bool)step(!Encodingbuilder,[Int32]_,!Int32length,!Boolnulls)aelement=(Encodingbuilderforall a. Semigroup a => a -> a -> a<>EncodingelementBuilder,[Int32]elementDimensions,forall a. Enum a => a -> asuccInt32length,BoolnullsBool -> Bool -> Bool||BoolelementNulls)whereArrayEncodingelementBuilder[Int32]elementDimensionsBoolelementNulls=a -> ArrayelementArrayaelement

[8]ページ先頭

©2009-2025 Movatter.jp