Current section

Files

Jump to
pgl src pgl@internal@conn.erl
Raw

src/pgl@internal@conn.erl

-module(pgl@internal@conn).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/pgl/internal/conn.gleam").
-export([new/2, prev_savepoint/1, next_savepoint/1, savepoint_statement/1, release_savepoint_statement/1, rollback_savepoint_statement/1]).
-export_type([conn/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-type conn() :: {conn,
pgl@internal@socket:socket(),
gleam@option:option(integer()),
gleam@erlang@process:pid_()}.
-file("src/pgl/internal/conn.gleam", 14).
?DOC(false).
-spec new(pgl@internal@socket:socket(), gleam@erlang@process:pid_()) -> conn().
new(Sock, Caller) ->
{conn, Sock, none, Caller}.
-file("src/pgl/internal/conn.gleam", 27).
?DOC(false).
-spec prev_savepoint(conn()) -> conn().
prev_savepoint(Conn) ->
Savepoint = case erlang:element(3, Conn) of
{some, Num} ->
{some, Num - 1};
none ->
none
end,
{conn, erlang:element(2, Conn), Savepoint, erlang:element(4, Conn)}.
-file("src/pgl/internal/conn.gleam", 18).
?DOC(false).
-spec next_savepoint(conn()) -> conn().
next_savepoint(Conn) ->
Savepoint = case erlang:element(3, Conn) of
{some, Num} ->
{some, Num + 1};
none ->
{some, 1}
end,
{conn, erlang:element(2, Conn), Savepoint, erlang:element(4, Conn)}.
-file("src/pgl/internal/conn.gleam", 36).
?DOC(false).
-spec savepoint_statement(conn()) -> binary().
savepoint_statement(Conn) ->
Num@1 = case erlang:element(3, Conn) of
{some, Num} ->
Num;
none ->
1
end,
<<<<"SAVEPOINT "/utf8, "pgl_savepoint"/utf8>>/binary,
(erlang:integer_to_binary(Num@1))/binary>>.
-file("src/pgl/internal/conn.gleam", 45).
?DOC(false).
-spec release_savepoint_statement(conn()) -> {ok, binary()} | {error, nil}.
release_savepoint_statement(Conn) ->
case erlang:element(3, Conn) of
{some, Num} ->
Stmt = <<<<"RELEASE SAVEPOINT "/utf8, "pgl_savepoint"/utf8>>/binary,
(erlang:integer_to_binary(Num))/binary>>,
{ok, Stmt};
none ->
{error, nil}
end.
-file("src/pgl/internal/conn.gleam", 56).
?DOC(false).
-spec rollback_savepoint_statement(conn()) -> {ok, binary()} | {error, nil}.
rollback_savepoint_statement(Conn) ->
case erlang:element(3, Conn) of
{some, Num} ->
Stmt = <<<<<<"ROLLBACK TO SAVEPOINT "/utf8, "pgl_savepoint"/utf8>>/binary,
(erlang:integer_to_binary(Num))/binary>>/binary,
";"/utf8>>,
{ok, Stmt};
none ->
{error, nil}
end.