diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/GenerateExec.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/GenerateExec.scala
index 69be7094d2c39a42bd8b39b1ae2b0c6bf255665f..f87d05884b27666207b06db6ba8fdc5fda9e1821 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/GenerateExec.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/GenerateExec.scala
@@ -119,7 +119,7 @@ case class GenerateExec(
     }
   }
 
-  override def supportCodegen: Boolean = generator.supportCodegen
+  override def supportCodegen: Boolean = false
 
   override def inputRDDs(): Seq[RDD[InternalRow]] = {
     child.asInstanceOf[CodegenSupport].inputRDDs()
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/WholeStageCodegenSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/WholeStageCodegenSuite.scala
index 4d9203556d49e8b695b44d7ee6d1038b9b872a43..a4b30a2f8cec1d8ee1d2ffbed2be653232e46313 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/WholeStageCodegenSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/WholeStageCodegenSuite.scala
@@ -116,34 +116,6 @@ class WholeStageCodegenSuite extends SparkPlanTest with SharedSQLContext {
     assert(ds.collect() === Array(("a", 10.0), ("b", 3.0), ("c", 1.0)))
   }
 
-  test("generate should be included in WholeStageCodegen") {
-    import org.apache.spark.sql.functions._
-    val ds = spark.range(2).select(
-      col("id"),
-      explode(array(col("id") + 1, col("id") + 2)).as("value"))
-    val plan = ds.queryExecution.executedPlan
-    assert(plan.find(p =>
-      p.isInstanceOf[WholeStageCodegenExec] &&
-        p.asInstanceOf[WholeStageCodegenExec].child.isInstanceOf[GenerateExec]).isDefined)
-    assert(ds.collect() === Array(Row(0, 1), Row(0, 2), Row(1, 2), Row(1, 3)))
-  }
-
-  test("large stack generator should not use WholeStageCodegen") {
-    def createStackGenerator(rows: Int): SparkPlan = {
-      val id = UnresolvedAttribute("id")
-      val stack = Stack(Literal(rows) +: Seq.tabulate(rows)(i => Add(id, Literal(i))))
-      spark.range(500).select(Column(stack)).queryExecution.executedPlan
-    }
-    val isCodeGenerated: SparkPlan => Boolean = {
-      case WholeStageCodegenExec(_: GenerateExec) => true
-      case _ => false
-    }
-
-    // Only 'stack' generators that produce 50 rows or less are code generated.
-    assert(createStackGenerator(50).find(isCodeGenerated).isDefined)
-    assert(createStackGenerator(100).find(isCodeGenerated).isEmpty)
-  }
-
   test("SPARK-19512 codegen for comparing structs is incorrect") {
     // this would raise CompileException before the fix
     spark.range(10)