Github user jackylk commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/1888#discussion_r164933909
  
    --- Diff: 
integration/spark2/src/main/scala/org/apache/spark/sql/optimizer/CarbonLateDecodeRule.scala
 ---
    @@ -87,6 +88,39 @@ class CarbonLateDecodeRule extends Rule[LogicalPlan] 
with PredicateHelper {
         }
       }
     
    +  /**
    +   * Below method will be used to validate if query is directly fired on 
pre aggregate
    +   * data map or not
    +   * @param relations all relations from query
    +   *
    +   */
    +  def validateQueryDirectlyOnDataMap(relations: 
Seq[CarbonDecoderRelation]): Unit = {
    +    var isPreAggDataMapExists = false
    +    // first check if pre aggregate data map exists or not
    +    relations.foreach{relation =>
    +      if (relation.carbonRelation.carbonTable.isChildDataMap) {
    +        isPreAggDataMapExists = true
    +      }
    +    }
    +    val validateQuery = CarbonProperties.getInstance
    +      .getProperty(CarbonCommonConstants.VALIDATE_DIRECT_QUERY_ON_DATAMAP, 
"true").toBoolean
    +    var isThrowException = false
    +    // if validate query is enabled and relation contains pre aggregate 
data map
    +    if (validateQuery && isPreAggDataMapExists) {
    +      val carbonSessionInfo = ThreadLocalSessionInfo.getCarbonSessionInfo
    --- End diff --
    
    Can you expose a put and get interface in CarbonEnv to manipulate the 
SessionParam in CarbonEnv


---

Reply via email to