Skip to content

Commit 32b78c1

Browse files
committed
add baseType to SQLToken, update out within SQLFunctionChain
1 parent 9d8d7ef commit 32b78c1

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

sql/src/main/scala/app/softnetwork/elastic/sql/SQLFunction.scala

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,12 @@ trait SQLFunctionChain extends SQLFunction {
7272
override def in: SQLType = functions.lastOption.map(_.in).getOrElse(super.in)
7373

7474
override def out: SQLType = {
75-
val baseType = super.out
75+
val baseType = functions.lastOption.map(_.in).getOrElse(super.baseType)
7676
functions.reverse.foldLeft(baseType) { (currentType, fun) =>
7777
fun.applyType(currentType)
7878
}
7979
}
80+
8081
}
8182

8283
sealed trait SQLUnaryFunction[In <: SQLType, Out <: SQLType]
@@ -108,13 +109,7 @@ sealed trait SQLArithmeticFunction[In <: SQLType, Out <: SQLType]
108109
with MathScript {
109110
def operator: ArithmeticOperator
110111
override def toSQL(base: String): String = s"$base$operator$sql"
111-
override def applyType(in: SQLType): SQLType = in /*match {
112-
case SQLTypes.Date => SQLTypes.Date // a Date remains a Date
113-
case SQLTypes.Time => SQLTypes.Time // a Time remains a Time
114-
case SQLTypes.DateTime => SQLTypes.DateTime // a DateTime remains a DateTime
115-
case SQLTypes.Number => SQLTypes.Number // a Number remains a Number
116-
case _ => outputType // fallback
117-
}*/
112+
override def applyType(in: SQLType): SQLType = in
118113
}
119114

120115
sealed trait ParametrizedFunction extends SQLFunction {

sql/src/main/scala/app/softnetwork/elastic/sql/package.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ package object sql {
1919
trait SQLToken extends Serializable with SQLValidation {
2020
def sql: String
2121
override def toString: String = sql
22-
def in: SQLType = SQLTypes.Any
23-
def out: SQLType = SQLTypes.Any
22+
def baseType: SQLType = SQLTypes.Any
23+
def in: SQLType = baseType
24+
def out: SQLType = baseType
2425
}
2526

2627
trait PainlessScript extends SQLToken {

0 commit comments

Comments
 (0)