SparkCyclone icon indicating copy to clipboard operation
SparkCyclone copied to clipboard

Projection/TPC issue: MatchError substring(input_1#6269, 1, 2) (Query 22)

Open wgip opened this issue 4 years ago • 16 comments

Query 22 *** FAILED ***
(Hide Details)
Message:	substring(input_1#6269, 1, 2) AS cntrycode#6518 (of class org.apache.spark.sql.catalyst.expressions.Alias)
Exception:	scala.MatchError
com.nec.spark.agile.SparkExpressionToCExpression$.evalString(SparkExpressionToCExpression.scala:161)
com.nec.spark.planning.VERewriteStrategy.$anonfun$apply$2(VERewriteStrategy.scala:134)

wgip avatar Nov 23 '21 18:11 wgip

https://www.sparkcyclone.io/tpc-html/20211123160932/

com.nec.spark.agile.SparkExpressionToCExpression$.evalString(SparkExpressionToCExpression.scala:161)
com.nec.spark.planning.VERewriteStrategy.$anonfun$apply$2(VERewriteStrategy.scala:134)
scala.collection.immutable.List.map(List.scala:286)
com.nec.spark.planning.VERewriteStrategy.res$1(VERewriteStrategy.scala:131)
com.nec.spark.planning.VERewriteStrategy.apply(VERewriteStrategy.scala:386)
org.apache.spark.sql.catalyst.planning.QueryPlanner.$anonfun$plan$1(QueryPlanner.scala:63)
scala.collection.Iterator$$anon$11.nextCur(Iterator.scala:484)
scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:490)
scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:489)
org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
org.apache.spark.sql.execution.SparkStrategies.plan(SparkStrategies.scala:67)
org.apache.spark.sql.catalyst.planning.QueryPlanner.$anonfun$plan$3(QueryPlanner.scala:78)

carlos-reyes-123 avatar Jan 18 '22 21:01 carlos-reyes-123

// SparkCyclone/src/main/scala/com/nec/spark/agile/SparkExpressionToCExpression.scala(143)
case _ => sys.error(s"Could not handle the expression ${expression}, type ${expression.getClass}")

carlos-reyes-123 avatar Jan 18 '22 21:01 carlos-reyes-123

tests/tpchbench/src/main/scala/sparkcyclone/tpch/TPCHBenchmark.scala(1161)

carlos-reyes-123 avatar Jan 19 '22 23:01 carlos-reyes-123

SparkCyclone - new GitHub branch carlos-gh350-add-match-else

carlos-reyes-123 avatar Jan 19 '22 23:01 carlos-reyes-123

      case _ => sys.error(s"SparkExpressionToCExpression.evalString: " +
        "Could not match ${expression}, " +
        "class ${expression.getClass}")

carlos-reyes-123 avatar Jan 19 '22 23:01 carlos-reyes-123

https://github.com/XpressAI/SparkCyclone/pull/441

carlos-reyes-123 avatar Jan 20 '22 00:01 carlos-reyes-123

Failed toString() invocation on an object of type [org.apache.spark.sql.execution.QueryExecution]

carlos-reyes-123 avatar Jan 20 '22 01:01 carlos-reyes-123

java.lang.RuntimeException: SparkExpressionToCExpression.evalString:
    Could not match Success(substring(input_1#57879, 1, 2) AS cntrycode#59510), 
        class class org.apache.spark.sql.catalyst.expressions.Alias

carlos-reyes-123 avatar Jan 20 '22 04:01 carlos-reyes-123

import scala.util.Try

  case _ => sys.error(s"SparkExpressionToCExpression.evalString: " +
    s"Could not match ${Try(expression.toString)}, " +
    s"type ${expression.getClass}")

carlos-reyes-123 avatar Jan 20 '22 18:01 carlos-reyes-123

select
    substring(c_phone from 1 for 2) as cntrycode,
    c_acctbal
  from
    customer

carlos-reyes-123 avatar Jan 20 '22 19:01 carlos-reyes-123

class Alias
   child: Expression
   name: String
override def toString: String = s"$child AS $name#${exprId.id}$typeSuffix$delaySuffix"

carlos-reyes-123 avatar Jan 20 '22 19:01 carlos-reyes-123

new branch carlos-gh350-query22

carlos-reyes-123 avatar Jan 20 '22 19:01 carlos-reyes-123

SLF4J: Failed toString() invocation on an object of type [org.apache.spark.sql.execution.QueryExecution]
   │ Reported exception:
   │ java.lang.ClassCastException: org.apache.spark.sql.catalyst.expressions.AttributeReference
   │ cannot be cast to org.apache.spark.unsafe.types.UTF8String
   │    at org.apache.spark.sql.catalyst.expressions.Substring.nullSafeEval(stringExpressions.scala:1728)
   │    at com.nec.spark.agile.SparkExpressionToCExpression$.evalString(SparkExpressionToCExpression.scala:173)

carlos-reyes-123 avatar Jan 20 '22 20:01 carlos-reyes-123

carlos-gh350-query22-2

carlos-reyes-123 avatar Jan 20 '22 23:01 carlos-reyes-123

carlos-gh350-query22-3

carlos-reyes-123 avatar Jan 21 '22 01:01 carlos-reyes-123

https://github.com/XpressAI/SparkCyclone/actions/runs/1726602754

 SLF4J: Failed toString() invocation on an object of type [org.apache.spark.sql.execution.QueryExecution]
 Reported exception:
 java.lang.RuntimeException: Could not map substring(input_4#57879, 1, 2) IN (13,31,23,29,30,18,17) (class org.apache.spark.sql.catalyst.
       │ expressions.In None); input is List(c_custkey#57875L, c_name#57876, c_address#57877, c_nationkey#57878L, c_phone#57879, c_acctbal#57880, c_mktsegment#57881, c_commen
       │ t#57882), condition is (substring(c_phone#57879, 1, 2) IN (13,31,23,29,30,18,17) AND (c_acctbal#57880 > scalar-subquery#59508 []))
at scala.sys.package$.error(package.scala:30)
at com.nec.spark.planning.VERewriteStrategy.$anonfun$apply$19(VERewriteStrategy.scala:305)
at scala.util.Either.fold(Either.scala:192)
at com.nec.spark.planning.VERewriteStrategy.res$1(VERewriteStrategy.scala:307)
at com.nec.spark.planning.VERewriteStrategy.apply(VERewriteStrategy.scala:692)

carlos-reyes-123 avatar Jan 21 '22 02:01 carlos-reyes-123