Github user LantaoJin commented on a diff in the pull request:
    --- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/SQLExecution.scala ---
    @@ -34,6 +34,16 @@ object SQLExecution {
       private val executionIdToQueryExecution = new ConcurrentHashMap[Long, 
    +  private val executionIdToSqlText = new ConcurrentHashMap[Long, String]()
    +  def setSqlText(sqlText: String): Unit = {
    +    executionIdToSqlText.putIfAbsent(_nextExecutionId.get(), sqlText)
    --- End diff --
    `setSqlText` is invoked before `withNewExecutionId`. First time 
`_nextExecutionId` is 0 by default, so `setSqlText` store (0, x) in map. When 
`withNewExecutionId` is invoked, the code `val executionId = 
SQLExecution.nextExecutionId` increase the execution id and return the previous 
execution id, 0. Then `val sqlText = getSqlText(executionId)` will return the 
sql text which 0 mapped, x. Next time when `setSqlText` is  invoked, 
_nextExecutionId.get() return the next value, 1. So the new sql text store with 
in map like (1, y).


To unsubscribe, e-mail:
For additional commands, e-mail:

Reply via email to