## What changes were proposed in this pull request? Cloned session should prioritize `SQLConf` from parent's over `SparkConf`. Currently, when cloning a session, the child session has configuration set in `SparkConf` even the same properties are set to its parent `SQLConf`. Currently, when a Spark session is cloned, `mergeSparkConf` in `BaseSessionStateBuilder`'s `conf` overwrites `SQLConf` values as set in `SparkConf`. This PR proposes to call `mergeSparkConf` only when the parent session is empty. See below codes to read. 1. Parent's `sessionState` c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L268) c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L157-L161) 5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L88-L90) 2. Child `sessionState` c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L269) c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L155) c26379b446/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala (L102) c26379b446/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala (L74) 5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L305) 5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L283) 5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L292) 5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L88-L90) ## How was this patch tested? Added UT and with existing Unit Tests. Closes #24189 from chakravarthiT/CloneDiscardsConf. Authored-by: chakravarthiT <tcchakra@gmail.com> Signed-off-by: Hyukjin Kwon <gurwls223@apache.org>
c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L268)
c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L157-L161)
5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L88-L90)
c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L269)
c26379b446/sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala (L155)
c26379b446/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala (L102)
c26379b446/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala (L74)
5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L305)
5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L283)
5dab5f651f/sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala (L292)