Github user viirya commented on a diff in the pull request: https://github.com/apache/spark/pull/19803#discussion_r152882655 --- Diff: sql/core/src/main/scala/org/apache/spark/sql/execution/DataSourceScanExec.scala --- @@ -355,19 +355,12 @@ case class FileSourceScanExec( // PhysicalRDD always just has one input val input = ctx.freshName("input") ctx.addMutableState("scala.collection.Iterator", input, s"$input = inputs[0];") - val exprRows = output.zipWithIndex.map{ case (a, i) => - BoundReference(i, a.dataType, a.nullable) - } val row = ctx.freshName("row") - ctx.INPUT_ROW = row - ctx.currentVars = null - val columnsRowInput = exprRows.map(_.genCode(ctx)) - val inputRow = if (needsUnsafeRowConversion) null else row --- End diff -- When `needsUnsafeRowConversion` is true, previously we pass in a null and `consume` will generate code for a unsafe row projection. Now we always pass in the `row` which can possibly not a unsafe row. This looks changing behavior?
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org