Skip to content

Commit 56b13e5

Browse files
committed
Add regression test to hadoopFsRelationSuites
1 parent 2169a0f commit 56b13e5

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

sql/core/src/main/scala/org/apache/spark/sql/execution/ExistingRDD.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ object RDDConversions {
3737
val mutableRow = new GenericMutableRow(numColumns)
3838
val converters = outputTypes.map(CatalystTypeConverters.createToCatalystConverter)
3939
iterator.map { r =>
40-
assert (r.productArity == numColumns,
41-
s"Expected row with $numColumns but got ${r.productArity} instead")
4240
var i = 0
4341
while (i < numColumns) {
4442
mutableRow(i) = converters(i)(r.productElement(i))
@@ -59,8 +57,6 @@ object RDDConversions {
5957
val mutableRow = new GenericMutableRow(numColumns)
6058
val converters = outputTypes.map(CatalystTypeConverters.createToCatalystConverter)
6159
iterator.map { r =>
62-
assert (r.length == numColumns,
63-
s"Expected row with $numColumns but got ${r.length} instead")
6460
var i = 0
6561
while (i < numColumns) {
6662
mutableRow(i) = converters(i)(r(i))

sql/core/src/main/scala/org/apache/spark/sql/sources/DataSourceStrategy.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ private[sql] object DataSourceStrategy extends Strategy with Logging {
309309
output: Seq[Attribute],
310310
rdd: RDD[Row]): SparkPlan = {
311311
val converted = if (relation.needConversion) {
312-
execution.RDDConversions.rowToRowRdd(rdd, output.map(_.dataType))
312+
execution.RDDConversions.rowToRowRdd(rdd, relation.schema.map(_.dataType))
313313
} else {
314314
rdd
315315
}

sql/hive/src/test/scala/org/apache/spark/sql/sources/hadoopFsRelationSuites.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ abstract class HadoopFsRelationTest extends QueryTest with SQLTestUtils {
7676
df.filter('a > 1 && 'p1 < 2).select('b, 'p1),
7777
for (i <- 2 to 3; _ <- Seq("foo", "bar")) yield Row(s"val_$i", 1))
7878

79+
// Project many copies of columns with different types (reproduction for SPARK-7858)
80+
checkAnswer(
81+
df.filter('a > 1 && 'p1 < 2).select('b, 'b, 'b, 'b, 'p1, 'p1, 'p1, 'p1),
82+
for (i <- 2 to 3; _ <- Seq("foo", "bar"))
83+
yield Row(s"val_$i", s"val_$i", s"val_$i", s"val_$i", 1, 1, 1, 1))
84+
7985
// Self-join
8086
df.registerTempTable("t")
8187
withTempTable("t") {

0 commit comments

Comments
 (0)