changed
hex_metadata.config
|
@@ -35,4 +35,4 @@
|
35
35
|
{<<"optional">>,false},
|
36
36
|
{<<"repository">>,<<"hexpm">>},
|
37
37
|
{<<"requirement">>,<<"~> 2.0">>}]]}.
|
38
|
- {<<"version">>,<<"2.0.3">>}.
|
38
|
+ {<<"version">>,<<"2.0.4">>}.
|
changed
lib/tds/messages.ex
|
@@ -451,19 +451,12 @@ defmodule Tds.Messages do
|
451
451
|
end
|
452
452
|
|
453
453
|
defp encode(msg_transmgr(command: "TM_BEGIN_XACT", isolation_level: isolation_level), %{trans: trans}) do
|
454
|
- isolation = case isolation_level do
|
455
|
- :read_uncommitted -> 0x01
|
456
|
- :read_committed -> 0x02
|
457
|
- :repeatable_read -> 0x03
|
458
|
- :serializable -> 0x04
|
459
|
- :snapshot -> 0x05
|
460
|
- _no_change -> 0x00
|
461
|
- end
|
454
|
+ isolation = encode_isolation_level(isolation_level)
|
462
455
|
encode_trans(5, trans, <<isolation::size(1)-unit(8), 0x0::size(1)-unit(8)>>)
|
463
456
|
end
|
464
457
|
|
465
458
|
defp encode(msg_transmgr(command: "TM_COMMIT_XACT"), %{trans: trans}) do
|
466
|
- encode_trans(7, trans, <<0x00::size(2)-unit(8)>>)
|
459
|
+ encode_trans(7, trans, <<0, 0>>)
|
467
460
|
end
|
468
461
|
|
469
462
|
defp encode(msg_transmgr(command: "TM_ROLLBACK_XACT", name: name), %{trans: trans}) do
|
|
@@ -478,6 +471,17 @@ defmodule Tds.Messages do
|
478
471
|
encode_trans(9, trans, <<2::unsigned-8, savepoint::little-size(2)-unit(8)>>)
|
479
472
|
end
|
480
473
|
|
474
|
+ defp encode_isolation_level(isolation_level) do
|
475
|
+ case isolation_level do
|
476
|
+ :read_uncommitted -> 0x01
|
477
|
+ :read_committed -> 0x02
|
478
|
+ :repeatable_read -> 0x03
|
479
|
+ :serializable -> 0x04
|
480
|
+ :snapshot -> 0x05
|
481
|
+ _no_change -> 0x00
|
482
|
+ end
|
483
|
+ end
|
484
|
+
|
481
485
|
def encode_trans(request_type, trans, request_payload) do
|
482
486
|
# Transaction Descriptor header
|
483
487
|
header_type = <<2::little-size(2)-unit(8)>>
|
changed
lib/tds/protocol.ex
|
@@ -247,7 +247,7 @@ defmodule Tds.Protocol do
|
247
247
|
| {DBConnection.status(), new_state :: t}
|
248
248
|
| {:disconnect, Exception.t(), new_state :: t}
|
249
249
|
def handle_begin(opts, %{env: env, transaction: tran} = s) do
|
250
|
- isolation_level = Keyword.get(opts, :isolation_level, :no_change)
|
250
|
+ isolation_level = Keyword.get(opts, :isolation_level, :read_committed)
|
251
251
|
|
252
252
|
case Keyword.get(opts, :mode, :transaction) do
|
253
253
|
:transaction when tran == nil ->
|
|
@@ -293,7 +293,8 @@ defmodule Tds.Protocol do
|
293
293
|
:transaction when transaction in [:started, :failed] ->
|
294
294
|
env = %{env | savepoint: 0}
|
295
295
|
s = %{s | transaction: nil, env: env}
|
296
|
- send_transaction("TM_ROLLBACK_XACT", [name: 0], s)
|
296
|
+ payload = [name: 0, isolation_level: :read_committed]
|
297
|
+ send_transaction("TM_ROLLBACK_XACT", payload, s)
|
297
298
|
|
298
299
|
:savepoint when transaction in [:started, :failed] ->
|
299
300
|
payload = [name: env.savepoint]
|
changed
lib/tds/types.ex
|
@@ -1488,7 +1488,6 @@ defmodule Tds.Types do
|
1488
1488
|
@secs_in_hour 60 * @secs_in_min
|
1489
1489
|
# @secs_in_day 24 * @secs_in_hour
|
1490
1490
|
@max_time_scale 7
|
1491
|
- @usecs_in_sec 1_000_000
|
1492
1491
|
|
1493
1492
|
# Date
|
1494
1493
|
def decode_date(<<days::little-24>>) do
|
changed
mix.exs
|
@@ -2,7 +2,7 @@ defmodule Tds.Mixfile do
|
2
2
|
@moduledoc false
|
3
3
|
use Mix.Project
|
4
4
|
|
5
|
- @version "2.0.3"
|
5
|
+ @version "2.0.4"
|
6
6
|
def project do
|
7
7
|
[
|
8
8
|
app: :tds,
|