Skip to content

Commit

Permalink
Adding support for BigDecimal
Browse files Browse the repository at this point in the history
  • Loading branch information
Leonard Wolters committed Sep 11, 2023
1 parent 0586315 commit 3d14b83
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,13 @@ trait TypeCastFunctions { self: Magnets =>
extends TypeCastColumn[Double](tableColumn)
with Reinterpretable

case class BigDecimal(tableColumn: ConstOrColMagnet[_],
orZero: Boolean = false,
orDefault: Option[BigDecimal] = None,
orNull: Boolean = false)
extends TypeCastColumn[BigDecimal](tableColumn)
with Reinterpretable

case class Uuid(tableColumn: ConstOrColMagnet[_],
orZero: Boolean = false,
orDefault: Option[Uuid] = None,
Expand Down Expand Up @@ -184,13 +191,21 @@ trait TypeCastFunctions { self: Magnets =>
Float32(tableColumn, orDefault = Option(value))
def toFloat32OrNull(tableColumn: ConstOrColMagnet[_]): Float32 = Float32(tableColumn, orNull = true)
def toFloat32OrZero(tableColumn: ConstOrColMagnet[_]): Float32 = Float32(tableColumn, orZero = true)
def toFloat64(tableColumn: ConstOrColMagnet[_]): Float64 = Float64(tableColumn)

def toFloat64(tableColumn: ConstOrColMagnet[_]): Float64 = Float64(tableColumn)

def toFloat64OrDefault(tableColumn: ConstOrColMagnet[_], value: Double): Float64 =
Float64(tableColumn, orDefault = Option(value))
def toFloat64OrNull(tableColumn: ConstOrColMagnet[_]): Float64 = Float64(tableColumn, orNull = true)
def toFloat64OrZero(tableColumn: ConstOrColMagnet[_]): Float64 = Float64(tableColumn, orZero = true)

def toBigDecimal(tableColumn: ConstOrColMagnet[_]): BigDecimal = BigDecimal(tableColumn)

def toBigDecimalOrDefault(tableColumn: ConstOrColMagnet[_], value: BigDecimal): BigDecimal =
BigDecimal(tableColumn, orDefault = Option(value))
def toBigDecimalOrNull(tableColumn: ConstOrColMagnet[_]): BigDecimal = BigDecimal(tableColumn, orNull = true)
def toBigDecimalOrZero(tableColumn: ConstOrColMagnet[_]): BigDecimal = BigDecimal(tableColumn, orZero = true)

def toDate(tableColumn: ConstOrColMagnet[_]): DateRep = DateRep(tableColumn)

def toDateOrDefault(tableColumn: ConstOrColMagnet[_], value: DateTime): DateRep =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ trait TypeCastFunctionTokenizer {
case c: Int64 => tknz(c.tableColumn.column, ColumnType.Int64, c.orZero, c.orNull, c.orDefault)
case c: Float32 => tknz(c.tableColumn.column, ColumnType.Float32, c.orZero, c.orNull, c.orDefault)
case c: Float64 => tknz(c.tableColumn.column, ColumnType.Float64, c.orZero, c.orNull, c.orDefault)
case c: BigDecimal => tknz(c.tableColumn.column, ColumnType.Float64, c.orZero, c.orNull, c.orDefault)
case c: DateRep => tknz(c.tableColumn.column, ColumnType.Date, c.orZero, c.orNull, c.orDefault)
case c: DateTimeRep => tknz(c.tableColumn.column, ColumnType.DateTime, c.orZero, c.orNull, c.orDefault)
case c: Uuid => tknz(c.tableColumn.column, ColumnType.UUID, c.orZero, c.orNull, c.orDefault)
Expand Down

0 comments on commit 3d14b83

Please sign in to comment.