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

    https://github.com/apache/carbondata/pull/2396#discussion_r197470593
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/metadata/schema/table/CarbonTable.java
 ---
    @@ -665,6 +665,34 @@ public CarbonDimension getDimensionByName(String 
tableName, String columnName) {
           if (dim.getColName().equalsIgnoreCase(columnName)) {
             carbonDimension = dim;
             break;
    +      } else if (dim.getListOfChildDimensions() != null) {
    --- End diff --
    
    Try to simplify as follow
    ```
    /**
       * to get particular dimension from a table
       *
       * @param tableName
       * @param columnName [col1.col12.col123]
       * @return
       */
      public CarbonDimension getDimensionByName(String tableName, String 
columnName) {
        CarbonDimension carbonDimension = null;
        List<CarbonDimension> dimList = tableDimensionsMap.get(tableName);
        String[] colsplits = columnName.split("\\.");
        String tempColName = colsplits[0];
        for (String colsplit : colsplits) {
          carbonDimension = getCarbonDimension(tempColName, dimList);
          if (carbonDimension.getListOfChildDimensions() != null) {
            tempColName = tempColName + "." + colsplit;
            dimList = carbonDimension.getListOfChildDimensions();
          }
        }
        List<CarbonDimension> implicitDimList = 
tableImplicitDimensionsMap.get(tableName);
        if (carbonDimension == null) {
          carbonDimension = getCarbonDimension(columnName, implicitDimList);
        }
        return carbonDimension;
      }
    
    
      private CarbonDimension getCarbonDimension(String columnName, 
List<CarbonDimension> dimensions) {
        CarbonDimension carbonDimension = null;
        for (CarbonDimension dim : dimensions) {
          if (dim.getColName().equalsIgnoreCase(columnName)) {
            carbonDimension = dim;
            break;
          }
        }
        return carbonDimension;
      }
    ```


---

Reply via email to