Packages
postgrex
0.21.1
1.0.0-rc.1
retired
1.0.0-rc.0
retired
0.22.3
0.22.2
0.22.1
0.22.0
0.21.1
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.0
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.13
0.15.12
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.13.0-rc.0
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.2
PostgreSQL driver for Elixir
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/postgrex/extensions/float8.ex
defmodule Postgrex.Extensions.Float8 do
@moduledoc false
import Postgrex.BinaryUtils, warn: false
use Postgrex.BinaryExtension, send: "float8send"
def encode(_) do
quote location: :keep do
n when is_number(n) ->
<<8::int32(), n::float64()>>
:NaN ->
<<8::int32(), 0::1, 2047::11, 1::1, 0::51>>
:inf ->
<<8::int32(), 0::1, 2047::11, 0::52>>
:"-inf" ->
<<8::int32(), 1::1, 2047::11, 0::52>>
other ->
raise DBConnection.EncodeError, Postgrex.Utils.encode_msg(other, "a float")
end
end
def decode(_) do
quote location: :keep do
<<8::int32(), 0::1, 2047::11, 0::52>> -> :inf
<<8::int32(), 1::1, 2047::11, 0::52>> -> :"-inf"
<<8::int32(), _::1, 2047::11, _::52>> -> :NaN
<<8::int32(), float::float64()>> -> float
end
end
end