[ https://issues.apache.org/jira/browse/SPARK-34396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17280487#comment-17280487 ]
Apache Spark commented on SPARK-34396: -------------------------------------- User 'ulysses-you' has created a pull request for this issue: https://github.com/apache/spark/pull/31509 > Add a new build-in function delegate > ------------------------------------ > > Key: SPARK-34396 > URL: https://issues.apache.org/jira/browse/SPARK-34396 > Project: Spark > Issue Type: Improvement > Components: SQL > Affects Versions: 3.2.0 > Reporter: ulysses you > Priority: Minor > > Delegate is just like a big box that can include some other expressions. It > will execute all of children and return the last child result as its result. > > The origin idea is from debug. Debug SQL is hard since SQL is always quite > long and complex. This new function can help debug with inject some help > functions, e.g., `println, sleep, raise_error`. > > Two usage examples: > {code:java} > -- raw sql > INSERT INTO TABLE t1 > SELECT coalesce(c1, c2) as c FROM t2 > > -- print the column data > INSERT INTO TABLE t1 > SELECT delegate( > java_method('scala.Console', 'println', concat('c1: ', c1, ', c2: ', c2)), > coalesce(c1, c2) > ) as c FROM t2{code} > > {code:java} > -- raw sql > SELECT if(spark_partition_id() = 1, c1, raise_error('test error')) FROM t2 > > -- add a sleep time before throw error > SELECT if(spark_partition_id() = 1, c1, delegate( > java_method('java.lang.Thread', 'sleep', 3000l), > raise_error('test error') > )) FROM t2{code} > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org