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,