Skip to content

Commit e80dfee

Browse files
committed
adding suggested fix for decimal. Pull request #24
1 parent c2b180f commit e80dfee

3 files changed

Lines changed: 23 additions & 30 deletions

File tree

lib/tds/types.ex

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -458,14 +458,10 @@ defmodule Tds.Types do
458458
d_ctx = Decimal.get_context
459459
d_ctx = %{d_ctx | precision: precision}
460460
Decimal.set_context d_ctx
461-
d = Decimal.new pow10(value,(scale * -1))
462-
value = pow10(d.coef, d.exp)
463-
value =
464461
case sign do
465-
0 -> value * -1
466-
_ -> value
462+
0 -> Decimal.new(-1, value, (scale * -1))
463+
_ -> Decimal.new( 1, value, (scale * -1))
467464
end
468-
Decimal.new value
469465
end
470466

471467
def decode_char(_collation, <<data::binary>>) do

lib/tds/utils.ex

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -77,24 +77,24 @@ defmodule Tds.Utils do
7777
# Connection.next(%{s | statement: "", queue: queue, state: :ready})
7878
# end
7979

80-
def pow10(num,0), do: num
81-
def pow10(num,pow) when pow > 0 do
82-
pow10(10*num, pow - 1)
83-
end
84-
85-
def pow10(num,pow) when pow < 0 do
86-
pow10(num/10, pow + 1)
87-
end
88-
89-
def pow(_, 0), do: 1
90-
def pow(a, 1), do: a
91-
92-
def pow(a, n) when rem(n, 2) === 0 do
93-
tmp = pow(a, div(n, 2))
94-
tmp * tmp
95-
end
96-
97-
def pow(a, n) do
98-
a * pow(a, n-1)
99-
end
80+
# def pow10(num,0), do: num
81+
# def pow10(num,pow) when pow > 0 do
82+
# pow10(10*num, pow - 1)
83+
# end
84+
85+
# def pow10(num,pow) when pow < 0 do
86+
# pow10(num/10, pow + 1)
87+
# end
88+
89+
# def pow(_, 0), do: 1
90+
# def pow(a, 1), do: a
91+
92+
# def pow(a, n) when rem(n, 2) === 0 do
93+
# tmp = pow(a, div(n, 2))
94+
# tmp * tmp
95+
# end
96+
97+
# def pow(a, n) do
98+
# a * pow(a, n-1)
99+
# end
100100
end

test/test_helper.exs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,10 @@ defmodule Tds.TestHelper do
3232
"-P", params[:password],
3333
"-S", params[:hostname],
3434
"-Q", ~s(#{sql}) | args]
35-
|> IO.inspect()
3635
System.cmd "sqlcmd", args
3736
end
3837
end
3938

4039

4140
Application.get_env(:tds, :opts)
42-
43-
|> IO.inspect()
44-
|> Tds.TestHelper.sqlcmd "IF NOT EXISTS(SELECT * FROM sys.databases where name = 'test') BEGIN CREATE DATABASE [test]; END;"
41+
|> Tds.TestHelper.sqlcmd("IF NOT EXISTS(SELECT * FROM sys.databases where name = 'test') BEGIN CREATE DATABASE [test]; END;")

0 commit comments

Comments
 (0)