You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gluten.apache.org by "marin-ma (via GitHub)" <gi...@apache.org> on 2024/04/30 07:23:47 UTC

[I] [VL] Multiple generate functions fails [incubator-gluten]

marin-ma opened a new issue, #5586:
URL: https://github.com/apache/incubator-gluten/issues/5586

   ### Backend
   
   VL (Velox)
   
   ### Bug description
   
   SQL containing consecutive generate functions may fail. e,g, `select c1, c2, c3 from t lateral view inline(col1) as c1, c2 lateral view explode(col2) as c3`
   
   ```
   Can't found column c1 in child output
   org.apache.gluten.exception.GlutenException: Can't found column c1 in child output
   	at org.apache.gluten.execution.GenerateExecTransformerBase.$anonfun$requiredChildOutputNodes$2(GenerateExecTransformerBase.scala:59)
   	at scala.Option.getOrElse(Option.scala:189)
   	at org.apache.gluten.execution.GenerateExecTransformerBase.$anonfun$requiredChildOutputNodes$1(GenerateExecTransformerBase.scala:59)
   	at scala.collection.immutable.List.map(List.scala:293)
   	at org.apache.gluten.execution.GenerateExecTransformerBase.requiredChildOutputNodes$lzycompute(GenerateExecTransformerBase.scala:52)
   	at org.apache.gluten.execution.GenerateExecTransformerBase.requiredChildOutputNodes(GenerateExecTransformerBase.scala:51)
   	at org.apache.gluten.execution.GenerateExecTransformer.getRelNode(GenerateExecTransformer.scala:82)
   	at org.apache.gluten.execution.GenerateExecTransformerBase.doValidateInternal(GenerateExecTransformerBase.scala:75)
   	at org.apache.gluten.extension.GlutenPlan.doValidate(GlutenPlan.scala:67)
   	at org.apache.gluten.extension.GlutenPlan.doValidate$(GlutenPlan.scala:64)
   	at org.apache.gluten.execution.GenerateExecTransformerBase.doValidate(GenerateExecTransformerBase.scala:35)
   	at org.apache.gluten.extension.columnar.AddTransformHintRule.addTransformableTag(TransformHintRule.scala:504)
   	at org.apache.gluten.extension.columnar.AddTransformHintRule.addTransformableTags(TransformHintRule.scala:317)
   	at org.apache.gluten.extension.columnar.AddTransformHintRule.apply(TransformHintRule.scala:310)
   	at org.apache.gluten.extension.columnar.RewriteSparkPlanRulesManager$$anonfun$apply$1.applyOrElse(RewriteSparkPlanRulesManager.scala:113)
   	at org.apache.gluten.extension.columnar.RewriteSparkPlanRulesManager$$anonfun$apply$1.applyOrElse(RewriteSparkPlanRulesManager.scala:96)
   	at org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformUpWithPruning$4(TreeNode.scala:519)
   	at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(origin.scala:76)
   	at org.apache.spark.sql.catalyst.trees.TreeNode.transformUpWithPruning(TreeNode.scala:519)
   	at org.apache.spark.sql.catalyst.trees.TreeNode.transformUp(TreeNode.scala:488)
   	at org.apache.gluten.extension.columnar.RewriteSparkPlanRulesManager.apply(RewriteSparkPlanRulesManager.scala:96)
   	at org.apache.gluten.extension.columnar.RewriteSparkPlanRulesManager.apply(RewriteSparkPlanRulesManager.scala:47)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.$anonfun$transformPlan$3(HeuristicApplier.scala:80)
   	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
   	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
   	at scala.collection.immutable.List.foldLeft(List.scala:91)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.$anonfun$transformPlan$1(HeuristicApplier.scala:78)
   	at org.apache.gluten.metrics.GlutenTimeMetric$.withNanoTime(GlutenTimeMetric.scala:41)
   	at org.apache.gluten.metrics.GlutenTimeMetric$.withMillisTime(GlutenTimeMetric.scala:46)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.transformPlan(HeuristicApplier.scala:88)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.$anonfun$withTransformRules$3(HeuristicApplier.scala:56)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.prepareFallback(HeuristicApplier.scala:94)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.$anonfun$withTransformRules$2(HeuristicApplier.scala:55)
   	at org.apache.gluten.utils.QueryPlanSelector.maybe(QueryPlanSelector.scala:74)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.org$apache$gluten$extension$columnar$heuristic$HeuristicApplier$$$anonfun$withTransformRules$1(HeuristicApplier.scala:53)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier$$anonfun$withTransformRules$4.apply(HeuristicApplier.scala:52)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier$$anonfun$withTransformRules$4.apply(HeuristicApplier.scala:52)
   	at org.apache.gluten.extension.columnar.heuristic.HeuristicApplier.apply(HeuristicApplier.scala:48)
   	at org.apache.gluten.extension.ColumnarOverrideRules.org$apache$gluten$extension$ColumnarOverrideRules$$$anonfun$postColumnarTransitions$1(ColumnarOverrides.scala:124)
   	at org.apache.gluten.extension.ColumnarOverrideRules$$anonfun$postColumnarTransitions$2.apply(ColumnarOverrides.scala:115)
   	at org.apache.gluten.extension.ColumnarOverrideRules$$anonfun$postColumnarTransitions$2.apply(ColumnarOverrides.scala:115)
   	at org.apache.spark.sql.execution.ApplyColumnarRulesAndInsertTransitions.$anonfun$apply$2(Columnar.scala:532)
   	at org.apache.spark.sql.execution.ApplyColumnarRulesAndInsertTransitions.$anonfun$apply$2$adapted(Columnar.scala:532)
   	at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
   	at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
   	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
   	at org.apache.spark.sql.execution.ApplyColumnarRulesAndInsertTransitions.apply(Columnar.scala:532)
   	at org.apache.spark.sql.execution.ApplyColumnarRulesAndInsertTransitions.apply(Columnar.scala:482)
   	at org.apache.spark.sql.execution.QueryExecution$.$anonfun$prepareForExecution$1(QueryExecution.scala:477)
   	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
   	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
   	at scala.collection.immutable.List.foldLeft(List.scala:91)
   	at org.apache.spark.sql.execution.QueryExecution$.prepareForExecution(QueryExecution.scala:476)
   	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executedPlan$1(QueryExecution.scala:186)
   	at org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:138)
   	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$2(QueryExecution.scala:219)
   	at org.apache.spark.sql.execution.QueryExecution$.withInternalError(QueryExecution.scala:546)
   	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$1(QueryExecution.scala:219)
   	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:900)
   	at org.apache.spark.sql.execution.QueryExecution.executePhase(QueryExecution.scala:218)
   	at org.apache.spark.sql.execution.QueryExecution.executedPlan$lzycompute(QueryExecution.scala:186)
   	at org.apache.spark.sql.execution.QueryExecution.executedPlan(QueryExecution.scala:179)
   	at org.apache.spark.sql.GlutenQueryTest.assertEmptyMissingInput(GlutenQueryTest.scala:297)
   	at org.apache.spark.sql.GlutenQueryTest.checkAnswer(GlutenQueryTest.scala:210)
   	at org.apache.gluten.execution.WholeStageTransformerSuite.compareResultsAgainstVanillaSpark(WholeStageTransformerSuite.scala:277)
   	at org.apache.gluten.execution.WholeStageTransformerSuite.runQueryAndCompare(WholeStageTransformerSuite.scala:296)
   	at org.apache.gluten.execution.TestOperator.$anonfun$new$152(TestOperator.scala:779)
   	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
   	at org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally(SparkErrorUtils.scala:64)
   	at org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally$(SparkErrorUtils.scala:61)
   	at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:94)
   	at org.apache.spark.sql.test.SQLTestUtilsBase.withTable(SQLTestUtils.scala:306)
   	at org.apache.spark.sql.test.SQLTestUtilsBase.withTable$(SQLTestUtils.scala:304)
   	at org.apache.gluten.execution.WholeStageTransformerSuite.withTable(WholeStageTransformerSuite.scala:38)
   	at org.apache.gluten.execution.TestOperator.$anonfun$new$151(TestOperator.scala:770)
   	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
   	at org.scalatest.enablers.Timed$$anon$1.timeoutAfter(Timed.scala:127)
   	at org.scalatest.concurrent.TimeLimits.failAfterImpl(TimeLimits.scala:239)
   	at org.scalatest.concurrent.TimeLimits.failAfter(TimeLimits.scala:230)
   	at org.scalatest.concurrent.TimeLimits.failAfter$(TimeLimits.scala:229)
   	at org.apache.spark.SparkFunSuite.failAfter(SparkFunSuite.scala:69)
   	at org.apache.spark.SparkFunSuite.$anonfun$test$2(SparkFunSuite.scala:155)
   	at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
   	at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:83)
   	at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
   	at org.scalatest.Transformer.apply(Transformer.scala:22)
   	at org.scalatest.Transformer.apply(Transformer.scala:20)
   	at org.scalatest.funsuite.AnyFunSuiteLike$$anon$1.apply(AnyFunSuiteLike.scala:190)
   	at org.apache.spark.SparkFunSuite.withFixture(SparkFunSuite.scala:227)
   	at org.scalatest.funsuite.AnyFunSuiteLike.invokeWithFixture$1(AnyFunSuiteLike.scala:188)
   	at org.scalatest.funsuite.AnyFunSuiteLike.$anonfun$runTest$1(AnyFunSuiteLike.scala:200)
   	at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
   	at org.scalatest.funsuite.AnyFunSuiteLike.runTest(AnyFunSuiteLike.scala:200)
   	at org.scalatest.funsuite.AnyFunSuiteLike.runTest$(AnyFunSuiteLike.scala:182)
   	at org.apache.spark.SparkFunSuite.org$scalatest$BeforeAndAfterEach$$super$runTest(SparkFunSuite.scala:69)
   	at org.scalatest.BeforeAndAfterEach.runTest(BeforeAndAfterEach.scala:234)
   	at org.scalatest.BeforeAndAfterEach.runTest$(BeforeAndAfterEach.scala:227)
   	at org.apache.spark.SparkFunSuite.runTest(SparkFunSuite.scala:69)
   	at org.scalatest.funsuite.AnyFunSuiteLike.$anonfun$runTests$1(AnyFunSuiteLike.scala:233)
   	at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:413)
   	at scala.collection.immutable.List.foreach(List.scala:431)
   	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401)
   	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
   	at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
   	at org.scalatest.funsuite.AnyFunSuiteLike.runTests(AnyFunSuiteLike.scala:233)
   	at org.scalatest.funsuite.AnyFunSuiteLike.runTests$(AnyFunSuiteLike.scala:232)
   	at org.scalatest.funsuite.AnyFunSuite.runTests(AnyFunSuite.scala:1563)
   	at org.scalatest.Suite.run(Suite.scala:1112)
   	at org.scalatest.Suite.run$(Suite.scala:1094)
   	at org.scalatest.funsuite.AnyFunSuite.org$scalatest$funsuite$AnyFunSuiteLike$$super$run(AnyFunSuite.scala:1563)
   	at org.scalatest.funsuite.AnyFunSuiteLike.$anonfun$run$1(AnyFunSuiteLike.scala:237)
   	at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
   	at org.scalatest.funsuite.AnyFunSuiteLike.run(AnyFunSuiteLike.scala:237)
   	at org.scalatest.funsuite.AnyFunSuiteLike.run$(AnyFunSuiteLike.scala:236)
   	at org.apache.spark.SparkFunSuite.org$scalatest$BeforeAndAfterAll$$super$run(SparkFunSuite.scala:69)
   	at org.scalatest.BeforeAndAfterAll.liftedTree1$1(BeforeAndAfterAll.scala:213)
   	at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:210)
   	at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
   	at org.apache.spark.SparkFunSuite.run(SparkFunSuite.scala:69)
   	at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:45)
   	at org.scalatest.tools.Runner$.$anonfun$doRunRunRunDaDoRunRun$13(Runner.scala:1320)
   	at org.scalatest.tools.Runner$.$anonfun$doRunRunRunDaDoRunRun$13$adapted(Runner.scala:1314)
   	at scala.collection.immutable.List.foreach(List.scala:431)
   	at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1314)
   	at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24(Runner.scala:993)
   	at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24$adapted(Runner.scala:971)
   	at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1480)
   	at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:971)
   	at org.scalatest.tools.Runner$.run(Runner.scala:798)
   	at org.scalatest.tools.Runner.run(Runner.scala)
   	at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2or3(ScalaTestRunner.java:43)
   	at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:26)
   ```
   
   ### Spark version
   
   None
   
   ### Spark configurations
   
   _No response_
   
   ### System information
   
   _No response_
   
   ### Relevant logs
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [I] [VL] Multiple generate functions fails [incubator-gluten]

Posted by "marin-ma (via GitHub)" <gi...@apache.org>.
marin-ma closed issue #5586: [VL] Multiple generate functions fails
URL: https://github.com/apache/incubator-gluten/issues/5586


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org