Skip to content

Commit b9e52bc

Browse files
committed
Fix some Math functions for MS SQL
1 parent e9ca43f commit b9e52bc

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

scalasql/src/dialects/MsSqlDialect.scala

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,13 @@ object MsSqlDialect extends MsSqlDialect {
5454
class DbApiOps(dialect: DialectTypeMappers)
5555
extends scalasql.operations.DbApiOps(dialect)
5656
with ConcatOps
57-
with MathOps
57+
with MathOps {
58+
override def ln[T: Numeric](v: Expr[T]): Expr[Double] = Expr { implicit ctx => sql"LOG($v)" }
59+
60+
override def atan2[T: Numeric](v: Expr[T], y: Expr[T]): Expr[Double] = Expr { implicit ctx =>
61+
sql"ATN2($v, $y)"
62+
}
63+
}
5864

5965
class ExprAggOps[T](v: Aggregatable[Expr[T]]) extends scalasql.operations.ExprAggOps[T](v) {
6066
def mkString(sep: Expr[String] = null)(implicit tm: TypeMapper[T]): Expr[String] = {

scalasql/test/src/operations/DbMathOpsTests.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import utest._
66

77
trait ExprMathOpsTests extends ScalaSqlSuite {
88
override implicit def DbApiOpsConv(db: => DbApi): DbApiOps & MathOps = ???
9-
def description = "Math operations; supported by H2/Postgres/MySql, not supported by Sqlite"
9+
def description = "Math operations; supported by H2/Postgres/MySql/MsSql, not supported by Sqlite"
1010
def tests = Tests {
1111

1212
test("power") - checker(
@@ -23,7 +23,7 @@ trait ExprMathOpsTests extends ScalaSqlSuite {
2323

2424
test("ln") - checker(
2525
query = db.ln(16.0),
26-
sql = "SELECT LN(?) AS res"
26+
sqls = Seq("SELECT LN(?) AS res", "SELECT LOG(?) AS res")
2727
)
2828

2929
test("log") - checker(
@@ -73,7 +73,7 @@ trait ExprMathOpsTests extends ScalaSqlSuite {
7373

7474
test("atan2") - checker(
7575
query = db.atan2(16.0, 23.0),
76-
sql = "SELECT ATAN2(?, ?) AS res"
76+
sqls = Seq("SELECT ATAN2(?, ?) AS res", "SELECT ATN2(?, ?) AS res")
7777
)
7878

7979
test("pi") - checker(

0 commit comments

Comments
 (0)