Skip to content

Commit

Permalink
#391 MOD (%) operator support / Oracle fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Tapac committed Sep 26, 2018
1 parent eb8120a commit 0b0e375
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/main/kotlin/org/jetbrains/exposed/sql/Op.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.jetbrains.exposed.sql

import org.jetbrains.exposed.dao.EntityID
import org.jetbrains.exposed.sql.vendors.OracleDialect
import org.jetbrains.exposed.sql.vendors.currentDialectIfAvailable
import org.joda.time.DateTime

abstract class Op<T> : Expression<T>() {
Expand Down Expand Up @@ -164,6 +166,9 @@ class DivideOp<T, S: T>(val expr1: Expression<T>, val expr2: Expression<S>, over
}

class ModOp<T:Number?, S: Number?>(val expr1: Expression<T>, val expr2: Expression<S>, override val columnType: IColumnType): ExpressionWithColumnType<T>() {
override fun toSQL(queryBuilder: QueryBuilder):String =
"(${expr1.toSQL(queryBuilder)}) % (${expr2.toSQL(queryBuilder)})"
override fun toSQL(queryBuilder: QueryBuilder):String = when(currentDialectIfAvailable) {
is OracleDialect -> "MOD(${expr1.toSQL(queryBuilder)}, ${expr2.toSQL(queryBuilder)})"
else -> "(${expr1.toSQL(queryBuilder)}) % (${expr2.toSQL(queryBuilder)})"
}

}

0 comments on commit 0b0e375

Please sign in to comment.