Skip to content

Commit 9adaeaf

Browse files
author
Davies Liu
committed
address comments
1 parent f42c732 commit 9adaeaf

File tree

11 files changed

+34
-35
lines changed

11 files changed

+34
-35
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/BoundAttribute.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ case class BoundReference(ordinal: Int, dataType: DataType, nullable: Boolean)
4646
override def genCode(ctx: CodeGenContext, ev: GeneratedExpressionCode): Code = {
4747
s"""
4848
boolean ${ev.isNull} = i.isNullAt($ordinal);
49-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ev.isNull} ?
49+
${ctx.javaType(dataType)} ${ev.primitive} = ${ev.isNull} ?
5050
${ctx.defaultValue(dataType)} : (${ctx.getColumn(dataType, ordinal)});
5151
"""
5252
}

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Cast.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ case class Cast(child: Expression, dataType: DataType) extends UnaryExpression w
458458
super.genCode(ctx, ev)
459459

460460
case (BooleanType, dt: NumericType) =>
461-
defineCodeGen(ctx, ev, c => s"(${ctx.primitiveType(dt)})($c ? 1 : 0)")
461+
defineCodeGen(ctx, ev, c => s"(${ctx.javaType(dt)})($c ? 1 : 0)")
462462
case (dt: DecimalType, BooleanType) =>
463463
defineCodeGen(ctx, ev, c => s"$c.isZero()")
464464
case (dt: NumericType, BooleanType) =>
@@ -469,7 +469,7 @@ case class Cast(child: Expression, dataType: DataType) extends UnaryExpression w
469469
case (_: DecimalType, dt: NumericType) =>
470470
defineCodeGen(ctx, ev, c => s"($c).to${ctx.boxedType(dt)}()")
471471
case (_: NumericType, dt: NumericType) =>
472-
defineCodeGen(ctx, ev, c => s"(${ctx.primitiveType(dt)})($c)")
472+
defineCodeGen(ctx, ev, c => s"(${ctx.javaType(dt)})($c)")
473473

474474
case other =>
475475
super.genCode(ctx, ev)

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,13 @@ abstract class Expression extends TreeNode[Expression] {
7777
* @return Java source code
7878
*/
7979
protected def genCode(ctx: CodeGenContext, ev: GeneratedExpressionCode): Code = {
80-
val e = this.asInstanceOf[Expression]
81-
ctx.references += e
80+
ctx.references += this
8281
val objectTerm = ctx.freshName("obj")
8382
s"""
8483
/* expression: ${this} */
8584
Object ${objectTerm} = expressions[${ctx.references.size - 1}].eval(i);
8685
boolean ${ev.isNull} = ${objectTerm} == null;
87-
${ctx.primitiveType(e.dataType)} ${ev.primitive} = ${ctx.defaultValue(e.dataType)};
86+
${ctx.javaType(e.dataType)} ${ev.primitive} = ${ctx.defaultValue(e.dataType)};
8887
if (!${ev.isNull}) {
8988
${ev.primitive} = (${ctx.boxedType(e.dataType)})${objectTerm};
9089
}
@@ -180,7 +179,7 @@ abstract class BinaryExpression extends Expression with trees.BinaryNode[Express
180179
s"""
181180
${eval1.code}
182181
boolean ${ev.isNull} = ${eval1.isNull};
183-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
182+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
184183
if (!${ev.isNull}) {
185184
${eval2.code}
186185
if(!${eval2.isNull}) {
@@ -219,7 +218,7 @@ abstract class UnaryExpression extends Expression with trees.UnaryNode[Expressio
219218
// reuse the previous isNull
220219
ev.isNull = eval.isNull
221220
eval.code + s"""
222-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
221+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
223222
if (!${ev.isNull}) {
224223
${ev.primitive} = ${f(eval.primitive)};
225224
}

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ case class Sqrt(child: Expression) extends UnaryArithmetic {
7878
val eval = child.gen(ctx)
7979
eval.code + s"""
8080
boolean ${ev.isNull} = ${eval.isNull};
81-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
81+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
8282
if (!${ev.isNull}) {
8383
if (${eval.primitive} < 0.0) {
8484
${ev.isNull} = true;
@@ -144,7 +144,7 @@ abstract class BinaryArithmetic extends BinaryExpression {
144144
// byte and short are casted into int when add, minus, times or divide
145145
case ByteType | ShortType =>
146146
defineCodeGen(ctx, ev, (eval1, eval2) =>
147-
s"(${ctx.primitiveType(dataType)})($eval1 $symbol $eval2)")
147+
s"(${ctx.javaType(dataType)})($eval1 $symbol $eval2)")
148148
case _ =>
149149
defineCodeGen(ctx, ev, (eval1, eval2) => s"$eval1 $symbol $eval2")
150150
}
@@ -248,7 +248,7 @@ case class Divide(left: Expression, right: Expression) extends BinaryArithmetic
248248
eval1.code + eval2.code +
249249
s"""
250250
boolean ${ev.isNull} = false;
251-
${ctx.primitiveType(left.dataType)} ${ev.primitive} = ${ctx.defaultValue(left.dataType)};
251+
${ctx.javaType(left.dataType)} ${ev.primitive} = ${ctx.defaultValue(left.dataType)};
252252
if (${eval1.isNull} || ${eval2.isNull} || $test) {
253253
${ev.isNull} = true;
254254
} else {
@@ -308,7 +308,7 @@ case class Remainder(left: Expression, right: Expression) extends BinaryArithmet
308308
eval1.code + eval2.code +
309309
s"""
310310
boolean ${ev.isNull} = false;
311-
${ctx.primitiveType(left.dataType)} ${ev.primitive} = ${ctx.defaultValue(left.dataType)};
311+
${ctx.javaType(left.dataType)} ${ev.primitive} = ${ctx.defaultValue(left.dataType)};
312312
if (${eval1.isNull} || ${eval2.isNull} || $test) {
313313
${ev.isNull} = true;
314314
} else {
@@ -408,7 +408,7 @@ case class BitwiseNot(child: Expression) extends UnaryArithmetic {
408408
}
409409

410410
override def genCode(ctx: CodeGenContext, ev: GeneratedExpressionCode): Code = {
411-
defineCodeGen(ctx, ev, c => s"(${ctx.primitiveType(dataType)})~($c)")
411+
defineCodeGen(ctx, ev, c => s"(${ctx.javaType(dataType)})~($c)")
412412
}
413413

414414
protected override def evalInternal(evalE: Any) = not(evalE)
@@ -444,7 +444,7 @@ case class MaxOf(left: Expression, right: Expression) extends BinaryArithmetic {
444444
val eval2 = right.gen(ctx)
445445
eval1.code + eval2.code + s"""
446446
boolean ${ev.isNull} = false;
447-
${ctx.primitiveType(left.dataType)} ${ev.primitive} =
447+
${ctx.javaType(left.dataType)} ${ev.primitive} =
448448
${ctx.defaultValue(left.dataType)};
449449

450450
if (${eval1.isNull}) {
@@ -500,7 +500,7 @@ case class MinOf(left: Expression, right: Expression) extends BinaryArithmetic {
500500

501501
eval1.code + eval2.code + s"""
502502
boolean ${ev.isNull} = false;
503-
${ctx.primitiveType(left.dataType)} ${ev.primitive} =
503+
${ctx.javaType(left.dataType)} ${ev.primitive} =
504504
${ctx.defaultValue(left.dataType)};
505505

506506
if (${eval1.isNull}) {

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ class CodeGenContext {
5454
*/
5555
val references: mutable.ArrayBuffer[Expression] = new mutable.ArrayBuffer[Expression]()
5656

57-
val stringType = classOf[UTF8String].getName
58-
val decimalType = classOf[Decimal].getName
57+
val stringType: String = classOf[UTF8String].getName
58+
val decimalType: String = classOf[Decimal].getName
5959

6060
private val curId = new java.util.concurrent.atomic.AtomicInteger()
6161

@@ -108,9 +108,9 @@ class CodeGenContext {
108108
}
109109

110110
/**
111-
* Return the primitive type for a DataType
111+
* Return the Java type for a DataType
112112
*/
113-
def primitiveType(dt: DataType): Term = dt match {
113+
def javaType(dt: DataType): Term = dt match {
114114
case IntegerType => "int"
115115
case LongType => "long"
116116
case ShortType => "short"
@@ -140,7 +140,7 @@ class CodeGenContext {
140140
case FloatType => "Float"
141141
case BooleanType => "Boolean"
142142
case DateType => "Integer"
143-
case _ => primitiveType(dt)
143+
case _ => javaType(dt)
144144
}
145145

146146
/**
@@ -189,9 +189,9 @@ class CodeGenContext {
189189
*/
190190
abstract class CodeGenerator[InType <: AnyRef, OutType <: AnyRef] extends Logging {
191191

192-
protected val exprType = classOf[Expression].getName
193-
protected val mutableRowType = classOf[MutableRow].getName
194-
protected val genericMutableRowType = classOf[GenericMutableRow].getName
192+
protected val exprType: String = classOf[Expression].getName
193+
protected val mutableRowType: String = classOf[MutableRow].getName
194+
protected val genericMutableRowType: String = classOf[GenericMutableRow].getName
195195

196196
/**
197197
* Can be flipped on manually in the console to add (expensive) expression evaluation trace code.

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateProjection.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ object GenerateProjection extends CodeGenerator[Seq[Expression], Projection] {
4545
val ctx = newCodeGenContext()
4646
val columns = expressions.zipWithIndex.map {
4747
case (e, i) =>
48-
s"private ${ctx.primitiveType(e.dataType)} c$i = ${ctx.defaultValue(e.dataType)};\n"
48+
s"private ${ctx.javaType(e.dataType)} c$i = ${ctx.defaultValue(e.dataType)};\n"
4949
}.mkString("\n ")
5050

5151
val initColumns = expressions.zipWithIndex.map {
@@ -80,7 +80,7 @@ object GenerateProjection extends CodeGenerator[Seq[Expression], Projection] {
8080
if (cases.count(_ != '\n') > 0) {
8181
s"""
8282
@Override
83-
public ${ctx.primitiveType(dataType)} ${ctx.accessorForType(dataType)}(int i) {
83+
public ${ctx.javaType(dataType)} ${ctx.accessorForType(dataType)}(int i) {
8484
if (isNullAt(i)) {
8585
return ${ctx.defaultValue(dataType)};
8686
}
@@ -103,7 +103,7 @@ object GenerateProjection extends CodeGenerator[Seq[Expression], Projection] {
103103
if (cases.count(_ != '\n') > 0) {
104104
s"""
105105
@Override
106-
public void ${ctx.mutatorForType(dataType)}(int i, ${ctx.primitiveType(dataType)} value) {
106+
public void ${ctx.mutatorForType(dataType)}(int i, ${ctx.javaType(dataType)} value) {
107107
nullBits[i] = false;
108108
switch (i) {
109109
$cases

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/literals.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ case class Literal protected (value: Any, dataType: DataType) extends LeafExpres
121121

122122
case ByteType | ShortType => // This must go before NumericType
123123
ev.isNull = "false"
124-
ev.primitive = s"(${ctx.primitiveType(dataType)})$value"
124+
ev.primitive = s"(${ctx.javaType(dataType)})$value"
125125
""
126126
case dt: NumericType if !dt.isInstanceOf[DecimalType] =>
127127
ev.isNull = "false"

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/mathfuncs/unary.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ abstract class UnaryMathExpression(f: Double => Double, name: String)
5353
val eval = child.gen(ctx)
5454
eval.code + s"""
5555
boolean ${ev.isNull} = ${eval.isNull};
56-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
56+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
5757
if (!${ev.isNull}) {
5858
${ev.primitive} = java.lang.Math.${funcName}(${eval.primitive});
5959
if (Double.valueOf(${ev.primitive}).isNaN()) {

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullFunctions.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ case class Coalesce(children: Seq[Expression]) extends Expression {
5656
override def genCode(ctx: CodeGenContext, ev: GeneratedExpressionCode): Code = {
5757
s"""
5858
boolean ${ev.isNull} = true;
59-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
59+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
6060
""" +
6161
children.map { e =>
6262
val eval = e.gen(ctx)

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ case class If(predicate: Expression, trueValue: Expression, falseValue: Expressi
397397
s"""
398398
${condEval.code}
399399
boolean ${ev.isNull} = false;
400-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
400+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
401401
if (!${condEval.isNull} && ${condEval.primitive}) {
402402
${trueEval.code}
403403
${ev.isNull} = ${trueEval.isNull};
@@ -530,7 +530,7 @@ case class CaseWhen(branches: Seq[Expression]) extends CaseWhenLike {
530530
s"""
531531
boolean $got = false;
532532
boolean ${ev.isNull} = true;
533-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
533+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
534534
$cases
535535
$other
536536
"""
@@ -626,7 +626,7 @@ case class CaseKeyWhen(key: Expression, branches: Seq[Expression]) extends CaseW
626626
s"""
627627
boolean $got = false;
628628
boolean ${ev.isNull} = true;
629-
${ctx.primitiveType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
629+
${ctx.javaType(dataType)} ${ev.primitive} = ${ctx.defaultValue(dataType)};
630630
${keyEval.code}
631631
$cases
632632
$other

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/sets.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ case class NewSet(elementType: DataType) extends LeafExpression {
6666
case IntegerType | LongType =>
6767
ev.isNull = "false"
6868
s"""
69-
${ctx.primitiveType(dataType)} ${ev.primitive} = new ${ctx.primitiveType(dataType)}();
69+
${ctx.javaType(dataType)} ${ev.primitive} = new ${ctx.javaType(dataType)}();
7070
"""
7171
case _ => super.genCode(ctx, ev)
7272
}
@@ -109,7 +109,7 @@ case class AddItemToSet(item: Expression, set: Expression) extends Expression {
109109
case IntegerType | LongType =>
110110
val itemEval = item.gen(ctx)
111111
val setEval = set.gen(ctx)
112-
val htype = ctx.primitiveType(dataType)
112+
val htype = ctx.javaType(dataType)
113113

114114
ev.isNull = "false"
115115
ev.primitive = setEval.primitive
@@ -160,7 +160,7 @@ case class CombineSets(left: Expression, right: Expression) extends BinaryExpres
160160
case IntegerType | LongType =>
161161
val leftEval = left.gen(ctx)
162162
val rightEval = right.gen(ctx)
163-
val htype = ctx.primitiveType(dataType)
163+
val htype = ctx.javaType(dataType)
164164

165165
ev.isNull = leftEval.isNull
166166
ev.primitive = leftEval.primitive

0 commit comments

Comments
 (0)