zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

raw.ex (908B)


      1 defmodule Postgrex.Extensions.Raw do
      2   @moduledoc false
      3   import Postgrex.BinaryUtils, warn: false
      4 
      5   use Postgrex.BinaryExtension,
      6     send: "bpcharsend",
      7     send: "textsend",
      8     send: "varcharsend",
      9     send: "byteasend",
     10     send: "enum_send",
     11     send: "unknownsend",
     12     send: "citextsend",
     13     send: "charsend"
     14 
     15   def init(opts), do: Keyword.fetch!(opts, :decode_binary)
     16 
     17   def encode(_) do
     18     quote location: :keep, generated: true do
     19       bin when is_binary(bin) ->
     20         [<<byte_size(bin)::int32()>> | bin]
     21 
     22       other ->
     23         raise DBConnection.EncodeError, Postgrex.Utils.encode_msg(other, "a binary")
     24     end
     25   end
     26 
     27   def decode(:copy) do
     28     quote location: :keep do
     29       <<len::int32(), value::binary-size(len)>> -> :binary.copy(value)
     30     end
     31   end
     32 
     33   def decode(:reference) do
     34     quote location: :keep do
     35       <<len::int32(), value::binary-size(len)>> -> value
     36     end
     37   end
     38 end