You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by rx...@apache.org on 2016/11/28 07:30:24 UTC
spark git commit: [SPARK-18585][SQL] Use `ev.isNull = "false"` if
possible for Janino to have a chance to optimize.
Repository: spark
Updated Branches:
refs/heads/master fc2c13bdf -> 87141622e
[SPARK-18585][SQL] Use `ev.isNull = "false"` if possible for Janino to have a chance to optimize.
## What changes were proposed in this pull request?
Janino can optimize `true ? a : b` into `a` or `false ? a : b` into `b`, or if/else with literal condition, so we should use literal as `ev.isNull` if possible.
## How was this patch tested?
Existing tests.
Author: Takuya UESHIN <ue...@happy-camper.st>
Closes #16008 from ueshin/issues/SPARK-18585.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/87141622
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/87141622
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/87141622
Branch: refs/heads/master
Commit: 87141622ee6b11ac177f68f58d0dc5f8b9a9f948
Parents: fc2c13b
Author: Takuya UESHIN <ue...@happy-camper.st>
Authored: Sun Nov 27 23:30:18 2016 -0800
Committer: Reynold Xin <rx...@databricks.com>
Committed: Sun Nov 27 23:30:18 2016 -0800
----------------------------------------------------------------------
.../sql/catalyst/expressions/complexTypeCreator.scala | 11 ++++-------
.../spark/sql/catalyst/expressions/nullExpressions.scala | 6 ++----
2 files changed, 6 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/87141622/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
index c9f3664..599fb63 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeCreator.scala
@@ -61,7 +61,6 @@ case class CreateArray(children: Seq[Expression]) extends Expression {
ctx.addMutableState("Object[]", values, s"this.$values = null;")
ev.copy(code = s"""
- final boolean ${ev.isNull} = false;
this.$values = new Object[${children.size}];""" +
ctx.splitExpressions(
ctx.INPUT_ROW,
@@ -78,7 +77,7 @@ case class CreateArray(children: Seq[Expression]) extends Expression {
s"""
final ArrayData ${ev.value} = new $arrayClass($values);
this.$values = null;
- """)
+ """, isNull = "false")
}
override def prettyName: String = "array"
@@ -144,7 +143,6 @@ case class CreateMap(children: Seq[Expression]) extends Expression {
val keyData = s"new $arrayClass($keyArray)"
val valueData = s"new $arrayClass($valueArray)"
ev.copy(code = s"""
- final boolean ${ev.isNull} = false;
$keyArray = new Object[${keys.size}];
$valueArray = new Object[${values.size}];""" +
ctx.splitExpressions(
@@ -177,7 +175,7 @@ case class CreateMap(children: Seq[Expression]) extends Expression {
final MapData ${ev.value} = new $mapClass($keyData, $valueData);
this.$keyArray = null;
this.$valueArray = null;
- """)
+ """, isNull = "false")
}
override def prettyName: String = "map"
@@ -301,7 +299,6 @@ case class CreateNamedStruct(children: Seq[Expression]) extends CreateNamedStruc
ctx.addMutableState("Object[]", values, s"this.$values = null;")
ev.copy(code = s"""
- boolean ${ev.isNull} = false;
$values = new Object[${valExprs.size}];""" +
ctx.splitExpressions(
ctx.INPUT_ROW,
@@ -317,7 +314,7 @@ case class CreateNamedStruct(children: Seq[Expression]) extends CreateNamedStruc
s"""
final InternalRow ${ev.value} = new $rowClass($values);
this.$values = null;
- """)
+ """, isNull = "false")
}
override def prettyName: String = "named_struct"
@@ -333,7 +330,7 @@ case class CreateNamedStruct(children: Seq[Expression]) extends CreateNamedStruc
case class CreateNamedStructUnsafe(children: Seq[Expression]) extends CreateNamedStructLike {
override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
val eval = GenerateUnsafeProjection.createCode(ctx, valExprs)
- ExprCode(code = eval.code, isNull = eval.isNull, value = eval.value)
+ ExprCode(code = eval.code, isNull = "false", value = eval.value)
}
override def prettyName: String = "named_struct_unsafe"
http://git-wip-us.apache.org/repos/asf/spark/blob/87141622/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala
----------------------------------------------------------------------
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala
index 8b2e8f3..d24a502 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala
@@ -206,9 +206,8 @@ case class IsNaN(child: Expression) extends UnaryExpression
case DoubleType | FloatType =>
ev.copy(code = s"""
${eval.code}
- boolean ${ev.isNull} = false;
${ctx.javaType(dataType)} ${ev.value} = ${ctx.defaultValue(dataType)};
- ${ev.value} = !${eval.isNull} && Double.isNaN(${eval.value});""")
+ ${ev.value} = !${eval.isNull} && Double.isNaN(${eval.value});""", isNull = "false")
}
}
}
@@ -383,7 +382,6 @@ case class AtLeastNNonNulls(n: Int, children: Seq[Expression]) extends Predicate
ev.copy(code = s"""
int $nonnull = 0;
$code
- boolean ${ev.isNull} = false;
- boolean ${ev.value} = $nonnull >= $n;""")
+ boolean ${ev.value} = $nonnull >= $n;""", isNull = "false")
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org