You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ch...@apache.org on 2017/03/29 09:07:07 UTC

[2/4] incubator-carbondata git commit: [CARBONDATA-826] Create carbondata-connector for query carbon data in presto

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataRecordSetProvider.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataRecordSetProvider.java b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataRecordSetProvider.java
index 95895fc..85c53ad 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataRecordSetProvider.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataRecordSetProvider.java
@@ -56,241 +56,218 @@ import static java.util.Objects.requireNonNull;
 
 public class CarbondataRecordSetProvider implements ConnectorRecordSetProvider {
 
-    private final String connectorId;
-    private final CarbonTableReader carbonTableReader;
-
-    @Inject
-    public CarbondataRecordSetProvider(
-            CarbondataConnectorId connectorId,
-            CarbonTableReader reader)
-    {
-        //this.config = requireNonNull(config, "config is null");
-        //this.connector = requireNonNull(connector, "connector is null");
-        this.connectorId = requireNonNull(connectorId, "connectorId is null").toString();
-        this.carbonTableReader = reader;
+  private final String connectorId;
+  private final CarbonTableReader carbonTableReader;
+
+  @Inject
+  public CarbondataRecordSetProvider(CarbondataConnectorId connectorId, CarbonTableReader reader) {
+    //this.config = requireNonNull(config, "config is null");
+    //this.connector = requireNonNull(connector, "connector is null");
+    this.connectorId = requireNonNull(connectorId, "connectorId is null").toString();
+    this.carbonTableReader = reader;
+  }
+
+  @Override public RecordSet getRecordSet(ConnectorTransactionHandle transactionHandle,
+      ConnectorSession session, ConnectorSplit split, List<? extends ColumnHandle> columns) {
+    requireNonNull(split, "split is null");
+    requireNonNull(columns, "columns is null");
+
+    // Convert split
+    CarbondataSplit cdSplit =
+        checkType(split, CarbondataSplit.class, "split is not class CarbondataSplit");
+    checkArgument(cdSplit.getConnectorId().equals(connectorId), "split is not for this connector");
+
+    // Convert all columns handles
+    ImmutableList.Builder<CarbondataColumnHandle> handles = ImmutableList.builder();
+    for (ColumnHandle handle : columns) {
+      handles.add(checkType(handle, CarbondataColumnHandle.class, "handle"));
     }
 
-    @Override
-    public RecordSet getRecordSet(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorSplit split, List<? extends ColumnHandle> columns) {
-        requireNonNull(split, "split is null");
-        requireNonNull(columns, "columns is null");
-
-        // Convert split
-        CarbondataSplit cdSplit = checkType(split, CarbondataSplit.class, "split is not class CarbondataSplit");
-        checkArgument(cdSplit.getConnectorId().equals(connectorId), "split is not for this connector");
-
-        // Convert all columns handles
-        ImmutableList.Builder<CarbondataColumnHandle> handles = ImmutableList.builder();
-        for (ColumnHandle handle : columns) {
-            handles.add(checkType(handle, CarbondataColumnHandle.class, "handle"));
-        }
-
-        // Build column projection(check the column order)
-        String targetCols = "";
-        for(ColumnHandle col : columns){
-            targetCols += ((CarbondataColumnHandle)col).getColumnName() + ",";
-        }
-        targetCols = targetCols.substring(0, targetCols.length() -1 );
-        //String cols = String.join(",", columns.stream().map(a -> ((CarbondataColumnHandle)a).getColumnName()).collect(Collectors.toList()));
-
-        CarbonTableCacheModel tableCacheModel = carbonTableReader.getCarbonCache(cdSplit.getSchemaTableName());
-        checkNotNull(tableCacheModel, "tableCacheModel should not be null");
-        checkNotNull(tableCacheModel.carbonTable, "tableCacheModel.carbonTable should not be null");
-        checkNotNull(tableCacheModel.tableInfo, "tableCacheModel.tableInfo should not be null");
-
-        // Build Query Model
-        CarbonTable targetTable = tableCacheModel.carbonTable;
-        CarbonQueryPlan queryPlan = CarbonInputFormatUtil.createQueryPlan(targetTable, targetCols);
-        QueryModel queryModel = QueryModel.createModel(targetTable.getAbsoluteTableIdentifier(), queryPlan, targetTable);
-
-        // Push down filter
-        fillFilter2QueryModel(queryModel, cdSplit.getConstraints(), targetTable);
-
-        // Return new record set
-        return new CarbondataRecordSet(targetTable,/*connector,*/ session, /*config, */cdSplit, handles.build(), queryModel);
+    // Build column projection(check the column order)
+    String targetCols = "";
+    for (ColumnHandle col : columns) {
+      targetCols += ((CarbondataColumnHandle) col).getColumnName() + ",";
     }
-
-    // Build filter for QueryModel (copy from CarbonInputFormat=> createRecordReader)
-    private void fillFilter2QueryModel(QueryModel queryModel, TupleDomain<ColumnHandle> originalConstraint, CarbonTable carbonTable) {
-
-        //queryModel.setFilterExpressionResolverTree(new FilterResolverIntf());
-
-        //Build Predicate Expression
-        ImmutableList.Builder<Expression> filters = ImmutableList.builder();
-
-        Domain domain = null;
-
-        for (ColumnHandle c : originalConstraint.getDomains().get().keySet()) {
-
-            // Build ColumnExpresstion for Expresstion(Carbondata)
-            CarbondataColumnHandle cdch = (CarbondataColumnHandle) c;
-            Type type = cdch.getColumnType();
-
-            DataType coltype = Spi2CarbondataTypeMapper(type);
-            Expression colExpression = new ColumnExpression(cdch.getColumnName(), coltype);
-
-            domain = originalConstraint.getDomains().get().get(c);
-            checkArgument(domain.getType().isOrderable(), "Domain type must be orderable");
-
-            if (domain.getValues().isNone()) {
-                //return QueryBuilders.filteredQuery(null, FilterBuilders.missingFilter(columnName));
-                //return domain.isNullAllowed() ? columnName + " IS NULL" : "FALSE";
-                //new Expression()
-            }
-
-            if (domain.getValues().isAll()) {
-                //return QueryBuilders.filteredQuery(null, FilterBuilders.existsFilter(columnName));
-                //return domain.isNullAllowed() ? "TRUE" : columnName + " IS NOT NULL";
-            }
-
-            List<Object> singleValues = new ArrayList<>();
-            List<Expression> rangeFilter = new ArrayList<>();
-            for (Range range : domain.getValues().getRanges().getOrderedRanges()) {
-                checkState(!range.isAll()); // Already checked
-                if (range.isSingleValue()) {
-                    singleValues.add(range.getLow().getValue());
-                }
-                else
-                {
-                    List<String> rangeConjuncts = new ArrayList<>();
-                    if (!range.getLow().isLowerUnbounded()) {
-                        Object value = ConvertDataByType(range.getLow().getValue(), type);
-                        switch (range.getLow().getBound()) {
-                            case ABOVE:
-                                if (type == TimestampType.TIMESTAMP) {
-                                    //todo not now
-                                } else {
-                                    GreaterThanExpression greater = new GreaterThanExpression(colExpression, new LiteralExpression(value, coltype));
-                                    //greater.setRangeExpression(true);
-                                    rangeFilter.add(greater);
-                                }
-                                break;
-                            case EXACTLY:
-                                GreaterThanEqualToExpression greater = new GreaterThanEqualToExpression(colExpression, new LiteralExpression(value, coltype));
-                                //greater.setRangeExpression(true);
-                                rangeFilter.add(greater);
-                                break;
-                            case BELOW:
-                                throw new IllegalArgumentException("Low marker should never use BELOW bound");
-                            default:
-                                throw new AssertionError("Unhandled bound: " + range.getLow().getBound());
-                        }
-                    }
-                    if (!range.getHigh().isUpperUnbounded()) {
-                        Object value = ConvertDataByType(range.getHigh().getValue(), type);
-                        switch (range.getHigh().getBound()) {
-                            case ABOVE:
-                                throw new IllegalArgumentException("High marker should never use ABOVE bound");
-                            case EXACTLY:
-                                LessThanEqualToExpression less = new LessThanEqualToExpression(colExpression, new LiteralExpression(value, coltype));
-                                //less.setRangeExpression(true);
-                                rangeFilter.add(less);
-                                break;
-                            case BELOW:
-                                LessThanExpression less2 = new LessThanExpression(colExpression, new LiteralExpression(value, coltype));
-                                //less2.setRangeExpression(true);
-                                rangeFilter.add(less2);
-                                break;
-                            default:
-                                throw new AssertionError("Unhandled bound: " + range.getHigh().getBound());
-                        }
-                    }
+    targetCols = targetCols.substring(0, targetCols.length() - 1);
+    //String cols = String.join(",", columns.stream().map(a -> ((CarbondataColumnHandle)a).getColumnName()).collect(Collectors.toList()));
+
+    CarbonTableCacheModel tableCacheModel =
+        carbonTableReader.getCarbonCache(cdSplit.getSchemaTableName());
+    checkNotNull(tableCacheModel, "tableCacheModel should not be null");
+    checkNotNull(tableCacheModel.carbonTable, "tableCacheModel.carbonTable should not be null");
+    checkNotNull(tableCacheModel.tableInfo, "tableCacheModel.tableInfo should not be null");
+
+    // Build Query Model
+    CarbonTable targetTable = tableCacheModel.carbonTable;
+    CarbonQueryPlan queryPlan = CarbonInputFormatUtil.createQueryPlan(targetTable, targetCols);
+    QueryModel queryModel =
+        QueryModel.createModel(targetTable.getAbsoluteTableIdentifier(), queryPlan, targetTable);
+
+    // Push down filter
+    fillFilter2QueryModel(queryModel, cdSplit.getConstraints(), targetTable);
+
+    // Return new record set
+    return new CarbondataRecordSet(targetTable,/*connector,*/ session, /*config, */cdSplit,
+        handles.build(), queryModel);
+  }
+
+  // Build filter for QueryModel (copy from CarbonInputFormat=> createRecordReader)
+  private void fillFilter2QueryModel(QueryModel queryModel,
+      TupleDomain<ColumnHandle> originalConstraint, CarbonTable carbonTable) {
+
+    //queryModel.setFilterExpressionResolverTree(new FilterResolverIntf());
+
+    //Build Predicate Expression
+    ImmutableList.Builder<Expression> filters = ImmutableList.builder();
+
+    Domain domain = null;
+
+    for (ColumnHandle c : originalConstraint.getDomains().get().keySet()) {
+
+      // Build ColumnExpresstion for Expresstion(Carbondata)
+      CarbondataColumnHandle cdch = (CarbondataColumnHandle) c;
+      Type type = cdch.getColumnType();
+
+      DataType coltype = Spi2CarbondataTypeMapper(type);
+      Expression colExpression = new ColumnExpression(cdch.getColumnName(), coltype);
+
+      domain = originalConstraint.getDomains().get().get(c);
+      checkArgument(domain.getType().isOrderable(), "Domain type must be orderable");
+
+      if (domain.getValues().isNone()) {
+        //return QueryBuilders.filteredQuery(null, FilterBuilders.missingFilter(columnName));
+        //return domain.isNullAllowed() ? columnName + " IS NULL" : "FALSE";
+        //new Expression()
+      }
+
+      if (domain.getValues().isAll()) {
+        //return QueryBuilders.filteredQuery(null, FilterBuilders.existsFilter(columnName));
+        //return domain.isNullAllowed() ? "TRUE" : columnName + " IS NOT NULL";
+      }
+
+      List<Object> singleValues = new ArrayList<>();
+      List<Expression> rangeFilter = new ArrayList<>();
+      for (Range range : domain.getValues().getRanges().getOrderedRanges()) {
+        checkState(!range.isAll()); // Already checked
+        if (range.isSingleValue()) {
+          singleValues.add(range.getLow().getValue());
+        } else {
+          List<String> rangeConjuncts = new ArrayList<>();
+          if (!range.getLow().isLowerUnbounded()) {
+            Object value = ConvertDataByType(range.getLow().getValue(), type);
+            switch (range.getLow().getBound()) {
+              case ABOVE:
+                if (type == TimestampType.TIMESTAMP) {
+                  //todo not now
+                } else {
+                  GreaterThanExpression greater = new GreaterThanExpression(colExpression,
+                      new LiteralExpression(value, coltype));
+                  //greater.setRangeExpression(true);
+                  rangeFilter.add(greater);
                 }
+                break;
+              case EXACTLY:
+                GreaterThanEqualToExpression greater =
+                    new GreaterThanEqualToExpression(colExpression,
+                        new LiteralExpression(value, coltype));
+                //greater.setRangeExpression(true);
+                rangeFilter.add(greater);
+                break;
+              case BELOW:
+                throw new IllegalArgumentException("Low marker should never use BELOW bound");
+              default:
+                throw new AssertionError("Unhandled bound: " + range.getLow().getBound());
             }
-
-            if (singleValues.size() == 1) {
-                Expression ex = null;
-                if (coltype.equals(DataType.STRING)) {
-                    ex = new EqualToExpression(colExpression, new LiteralExpression(((Slice) singleValues.get(0)).toStringUtf8(), coltype));
-                } else
-                    ex = new EqualToExpression(colExpression, new LiteralExpression(singleValues.get(0), coltype));
-                filters.add(ex);
-            }
-            else if(singleValues.size() > 1) {
-                ListExpression candidates = null;
-                List<Expression> exs = singleValues.stream().map((a) ->
-                {
-                    return new LiteralExpression(ConvertDataByType(a, type), coltype);
-                }).collect(Collectors.toList());
-                candidates = new ListExpression(exs);
-
-                if(candidates != null)
-                    filters.add(new InExpression(colExpression, candidates));
-            }
-            else if(rangeFilter.size() > 0){
-                if(rangeFilter.size() > 1) {
-                    Expression finalFilters = new OrExpression(rangeFilter.get(0), rangeFilter.get(1));
-                    if(rangeFilter.size() > 2)
-                    {
-                        for(int i = 2; i< rangeFilter.size(); i++)
-                        {
-                            filters.add(new AndExpression(finalFilters, rangeFilter.get(i)));
-                        }
-                    }
-                }
-                else if(rangeFilter.size() == 1)
-                    filters.add(rangeFilter.get(0));
+          }
+          if (!range.getHigh().isUpperUnbounded()) {
+            Object value = ConvertDataByType(range.getHigh().getValue(), type);
+            switch (range.getHigh().getBound()) {
+              case ABOVE:
+                throw new IllegalArgumentException("High marker should never use ABOVE bound");
+              case EXACTLY:
+                LessThanEqualToExpression less = new LessThanEqualToExpression(colExpression,
+                    new LiteralExpression(value, coltype));
+                //less.setRangeExpression(true);
+                rangeFilter.add(less);
+                break;
+              case BELOW:
+                LessThanExpression less2 =
+                    new LessThanExpression(colExpression, new LiteralExpression(value, coltype));
+                //less2.setRangeExpression(true);
+                rangeFilter.add(less2);
+                break;
+              default:
+                throw new AssertionError("Unhandled bound: " + range.getHigh().getBound());
             }
+          }
         }
-
-        Expression finalFilters;
-        List<Expression> tmp = filters.build();
-        if(tmp.size() > 1) {
-            finalFilters = new AndExpression(tmp.get(0), tmp.get(1));
-            if(tmp.size() > 2)
-            {
-                for(int i = 2; i< tmp.size(); i++)
-                {
-                    finalFilters = new AndExpression(finalFilters, tmp.get(i));
-                }
+      }
+
+      if (singleValues.size() == 1) {
+        Expression ex = null;
+        if (coltype.equals(DataType.STRING)) {
+          ex = new EqualToExpression(colExpression,
+              new LiteralExpression(((Slice) singleValues.get(0)).toStringUtf8(), coltype));
+        } else ex = new EqualToExpression(colExpression,
+            new LiteralExpression(singleValues.get(0), coltype));
+        filters.add(ex);
+      } else if (singleValues.size() > 1) {
+        ListExpression candidates = null;
+        List<Expression> exs = singleValues.stream().map((a) -> {
+          return new LiteralExpression(ConvertDataByType(a, type), coltype);
+        }).collect(Collectors.toList());
+        candidates = new ListExpression(exs);
+
+        if (candidates != null) filters.add(new InExpression(colExpression, candidates));
+      } else if (rangeFilter.size() > 0) {
+        if (rangeFilter.size() > 1) {
+          Expression finalFilters = new OrExpression(rangeFilter.get(0), rangeFilter.get(1));
+          if (rangeFilter.size() > 2) {
+            for (int i = 2; i < rangeFilter.size(); i++) {
+              filters.add(new AndExpression(finalFilters, rangeFilter.get(i)));
             }
-        }
-        else if(tmp.size() == 1)
-            finalFilters = tmp.get(0);
-        else
-            return;
-
-        // todo set into QueryModel
-        CarbonInputFormatUtil.processFilterExpression(finalFilters, carbonTable);
-        queryModel.setFilterExpressionResolverTree(CarbonInputFormatUtil.resolveFilter(finalFilters, queryModel.getAbsoluteTableIdentifier()));
-    }
-
-    public static DataType Spi2CarbondataTypeMapper(Type colType)
-    {
-        if(colType == BooleanType.BOOLEAN)
-            return DataType.BOOLEAN;
-        else if(colType == SmallintType.SMALLINT)
-            return DataType.SHORT;
-        else if(colType == IntegerType.INTEGER)
-            return DataType.INT;
-        else if(colType == BigintType.BIGINT)
-            return DataType.LONG;
-        else if(colType == DoubleType.DOUBLE)
-            return DataType.DOUBLE;
-        else if(colType == DecimalType.createDecimalType())
-            return DataType.DECIMAL;
-        else if(colType == VarcharType.VARCHAR)
-            return DataType.STRING;
-        else if(colType == DateType.DATE)
-            return DataType.DATE;
-        else if(colType == TimestampType.TIMESTAMP)
-            return DataType.TIMESTAMP;
-        else
-            return DataType.STRING;
+          }
+        } else if (rangeFilter.size() == 1) filters.add(rangeFilter.get(0));
+      }
     }
 
-
-    public Object ConvertDataByType(Object rawdata, Type type)
-    {
-        if(type.equals(IntegerType.INTEGER))
-            return new Integer((rawdata.toString()));
-        else if(type.equals(BigintType.BIGINT))
-            return (Long)rawdata;
-        else if(type.equals(VarcharType.VARCHAR))
-            return ((Slice)rawdata).toStringUtf8();
-        else if(type.equals(BooleanType.BOOLEAN))
-            return (Boolean)(rawdata);
-
-        return rawdata;
-    }
+    Expression finalFilters;
+    List<Expression> tmp = filters.build();
+    if (tmp.size() > 1) {
+      finalFilters = new AndExpression(tmp.get(0), tmp.get(1));
+      if (tmp.size() > 2) {
+        for (int i = 2; i < tmp.size(); i++) {
+          finalFilters = new AndExpression(finalFilters, tmp.get(i));
+        }
+      }
+    } else if (tmp.size() == 1) finalFilters = tmp.get(0);
+    else return;
+
+    // todo set into QueryModel
+    CarbonInputFormatUtil.processFilterExpression(finalFilters, carbonTable);
+    queryModel.setFilterExpressionResolverTree(
+        CarbonInputFormatUtil.resolveFilter(finalFilters, queryModel.getAbsoluteTableIdentifier()));
+  }
+
+  public static DataType Spi2CarbondataTypeMapper(Type colType) {
+    if (colType == BooleanType.BOOLEAN) return DataType.BOOLEAN;
+    else if (colType == SmallintType.SMALLINT) return DataType.SHORT;
+    else if (colType == IntegerType.INTEGER) return DataType.INT;
+    else if (colType == BigintType.BIGINT) return DataType.LONG;
+    else if (colType == DoubleType.DOUBLE) return DataType.DOUBLE;
+    else if (colType == DecimalType.createDecimalType()) return DataType.DECIMAL;
+    else if (colType == VarcharType.VARCHAR) return DataType.STRING;
+    else if (colType == DateType.DATE) return DataType.DATE;
+    else if (colType == TimestampType.TIMESTAMP) return DataType.TIMESTAMP;
+    else return DataType.STRING;
+  }
+
+  public Object ConvertDataByType(Object rawdata, Type type) {
+    if (type.equals(IntegerType.INTEGER)) return new Integer((rawdata.toString()));
+    else if (type.equals(BigintType.BIGINT)) return (Long) rawdata;
+    else if (type.equals(VarcharType.VARCHAR)) return ((Slice) rawdata).toStringUtf8();
+    else if (type.equals(BooleanType.BOOLEAN)) return (Boolean) (rawdata);
+
+    return rawdata;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplit.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplit.java b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplit.java
index 741dfcc..ecc41ef 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplit.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplit.java
@@ -33,64 +33,56 @@ import static java.util.Objects.requireNonNull;
 
 public class CarbondataSplit implements ConnectorSplit {
 
-    private final String connectorId;
-    private final SchemaTableName schemaTableName;
-    private final TupleDomain<ColumnHandle> constraints;
-    private final CarbonLocalInputSplit localInputSplit;
-    private final List<CarbondataColumnConstraint> rebuildConstraints;
-    private final ImmutableList<HostAddress> addresses;
-
-    @JsonCreator
-    public CarbondataSplit( @JsonProperty("connectorId") String connectorId,
-                            @JsonProperty("schemaTableName") SchemaTableName schemaTableName,
-                            @JsonProperty("constraints") TupleDomain<ColumnHandle> constraints,
-                            @JsonProperty("localInputSplit") CarbonLocalInputSplit localInputSplit,
-                            @JsonProperty("rebuildConstraints") List<CarbondataColumnConstraint> rebuildConstraints) {
-        this.connectorId = requireNonNull(connectorId, "connectorId is null");
-        this.schemaTableName = requireNonNull(schemaTableName, "schemaTable is null");
-        this.constraints = requireNonNull(constraints, "constraints is null");
-        this.localInputSplit = requireNonNull(localInputSplit, "localInputSplit is null");
-        this.rebuildConstraints = requireNonNull(rebuildConstraints, "rebuildConstraints is null");
-        this.addresses = ImmutableList.of();
-    }
-
-
-    @JsonProperty
-    public String getConnectorId() {
-        return connectorId;
-    }
-
-    @JsonProperty
-    public SchemaTableName getSchemaTableName(){
-        return  schemaTableName;
-    }
-
-    @JsonProperty
-    public TupleDomain<ColumnHandle> getConstraints() {
-        return constraints;
-    }
-
-    @JsonProperty
-    public CarbonLocalInputSplit getLocalInputSplit(){return localInputSplit;}
-
-    @JsonProperty
-    public List<CarbondataColumnConstraint> getRebuildConstraints() {
-        return rebuildConstraints;
-    }
-
-    @Override
-    public boolean isRemotelyAccessible() {
-        return true;
-    }
-
-    @Override
-    public List<HostAddress> getAddresses() {
-        return addresses;
-    }
-
-    @Override
-    public Object getInfo() {
-        return this;
-    }
+  private final String connectorId;
+  private final SchemaTableName schemaTableName;
+  private final TupleDomain<ColumnHandle> constraints;
+  private final CarbonLocalInputSplit localInputSplit;
+  private final List<CarbondataColumnConstraint> rebuildConstraints;
+  private final ImmutableList<HostAddress> addresses;
+
+  @JsonCreator public CarbondataSplit(@JsonProperty("connectorId") String connectorId,
+      @JsonProperty("schemaTableName") SchemaTableName schemaTableName,
+      @JsonProperty("constraints") TupleDomain<ColumnHandle> constraints,
+      @JsonProperty("localInputSplit") CarbonLocalInputSplit localInputSplit,
+      @JsonProperty("rebuildConstraints") List<CarbondataColumnConstraint> rebuildConstraints) {
+    this.connectorId = requireNonNull(connectorId, "connectorId is null");
+    this.schemaTableName = requireNonNull(schemaTableName, "schemaTable is null");
+    this.constraints = requireNonNull(constraints, "constraints is null");
+    this.localInputSplit = requireNonNull(localInputSplit, "localInputSplit is null");
+    this.rebuildConstraints = requireNonNull(rebuildConstraints, "rebuildConstraints is null");
+    this.addresses = ImmutableList.of();
+  }
+
+  @JsonProperty public String getConnectorId() {
+    return connectorId;
+  }
+
+  @JsonProperty public SchemaTableName getSchemaTableName() {
+    return schemaTableName;
+  }
+
+  @JsonProperty public TupleDomain<ColumnHandle> getConstraints() {
+    return constraints;
+  }
+
+  @JsonProperty public CarbonLocalInputSplit getLocalInputSplit() {
+    return localInputSplit;
+  }
+
+  @JsonProperty public List<CarbondataColumnConstraint> getRebuildConstraints() {
+    return rebuildConstraints;
+  }
+
+  @Override public boolean isRemotelyAccessible() {
+    return true;
+  }
+
+  @Override public List<HostAddress> getAddresses() {
+    return addresses;
+  }
+
+  @Override public Object getInfo() {
+    return this;
+  }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplitManager.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplitManager.java b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplitManager.java
index 86390e3..a8902eb 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplitManager.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataSplitManager.java
@@ -50,255 +50,224 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Objects.requireNonNull;
 
-public class CarbondataSplitManager
-        implements ConnectorSplitManager
-{
-
-    private final String connectorId;
-    private final CarbonTableReader carbonTableReader;
-
-    @Inject
-    public CarbondataSplitManager(CarbondataConnectorId connectorId, CarbonTableReader reader)
-    {
-        this.connectorId = requireNonNull(connectorId, "connectorId is null").toString();
-        this.carbonTableReader = requireNonNull(reader, "client is null");
-    }
-
-    public ConnectorSplitSource getSplits(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorTableLayoutHandle layout)
-    {
-        CarbondataTableLayoutHandle layoutHandle = (CarbondataTableLayoutHandle)layout;
-        CarbondataTableHandle tableHandle = layoutHandle.getTable();
-        SchemaTableName key = tableHandle.getSchemaTableName();
-
-        //get all filter domain
-        List<CarbondataColumnConstraint> rebuildConstraints = getColumnConstraints(layoutHandle.getConstraint());
-
-        CarbonTableCacheModel cache = carbonTableReader.getCarbonCache(key);
-        Expression filters = parseFilterExpression(layoutHandle.getConstraint(), cache.carbonTable);
-
-        if(cache != null) {
-            try {
-                List<CarbonLocalInputSplit> splits = carbonTableReader.getInputSplits2(cache, filters);
-
-                ImmutableList.Builder<ConnectorSplit> cSplits = ImmutableList.builder();
-                for (CarbonLocalInputSplit split : splits) {
-                    cSplits.add(new CarbondataSplit(
-                            connectorId,
-                            tableHandle.getSchemaTableName(),
-                            layoutHandle.getConstraint(),
-                            split,
-                            rebuildConstraints
-                    ));
-                }
-                return new FixedSplitSource(cSplits.build());
-            } catch (Exception ex) {
-                System.out.println(ex.toString());
-            }
+public class CarbondataSplitManager implements ConnectorSplitManager {
+
+  private final String connectorId;
+  private final CarbonTableReader carbonTableReader;
+
+  @Inject
+  public CarbondataSplitManager(CarbondataConnectorId connectorId, CarbonTableReader reader) {
+    this.connectorId = requireNonNull(connectorId, "connectorId is null").toString();
+    this.carbonTableReader = requireNonNull(reader, "client is null");
+  }
+
+  public ConnectorSplitSource getSplits(ConnectorTransactionHandle transactionHandle,
+      ConnectorSession session, ConnectorTableLayoutHandle layout) {
+    CarbondataTableLayoutHandle layoutHandle = (CarbondataTableLayoutHandle) layout;
+    CarbondataTableHandle tableHandle = layoutHandle.getTable();
+    SchemaTableName key = tableHandle.getSchemaTableName();
+
+    //get all filter domain
+    List<CarbondataColumnConstraint> rebuildConstraints =
+        getColumnConstraints(layoutHandle.getConstraint());
+
+    CarbonTableCacheModel cache = carbonTableReader.getCarbonCache(key);
+    Expression filters = parseFilterExpression(layoutHandle.getConstraint(), cache.carbonTable);
+
+    if (cache != null) {
+      try {
+        List<CarbonLocalInputSplit> splits = carbonTableReader.getInputSplits2(cache, filters);
+
+        ImmutableList.Builder<ConnectorSplit> cSplits = ImmutableList.builder();
+        for (CarbonLocalInputSplit split : splits) {
+          cSplits.add(new CarbondataSplit(connectorId, tableHandle.getSchemaTableName(),
+              layoutHandle.getConstraint(), split, rebuildConstraints));
         }
-        return null;
+        return new FixedSplitSource(cSplits.build());
+      } catch (Exception ex) {
+        System.out.println(ex.toString());
+      }
     }
-
-
-    public List<CarbondataColumnConstraint> getColumnConstraints(TupleDomain<ColumnHandle> constraint)
-    {
-        ImmutableList.Builder<CarbondataColumnConstraint> constraintBuilder = ImmutableList.builder();
-        for (TupleDomain.ColumnDomain<ColumnHandle> columnDomain : constraint.getColumnDomains().get()) {
-            CarbondataColumnHandle columnHandle = checkType(columnDomain.getColumn(), CarbondataColumnHandle.class, "column handle");
-
-            constraintBuilder.add(new CarbondataColumnConstraint(
-                    columnHandle.getColumnName(),
-                    Optional.of(columnDomain.getDomain()),
-                    columnHandle.isInvertedIndex()));
-        }
-
-        return constraintBuilder.build();
+    return null;
+  }
+
+  public List<CarbondataColumnConstraint> getColumnConstraints(
+      TupleDomain<ColumnHandle> constraint) {
+    ImmutableList.Builder<CarbondataColumnConstraint> constraintBuilder = ImmutableList.builder();
+    for (TupleDomain.ColumnDomain<ColumnHandle> columnDomain : constraint.getColumnDomains()
+        .get()) {
+      CarbondataColumnHandle columnHandle =
+          checkType(columnDomain.getColumn(), CarbondataColumnHandle.class, "column handle");
+
+      constraintBuilder.add(new CarbondataColumnConstraint(columnHandle.getColumnName(),
+          Optional.of(columnDomain.getDomain()), columnHandle.isInvertedIndex()));
     }
 
-
-    public Expression parseFilterExpression(TupleDomain<ColumnHandle> originalConstraint, CarbonTable carbonTable)
-    {
-        ImmutableList.Builder<Expression> filters = ImmutableList.builder();
-
-        Domain domain = null;
-
-        for (ColumnHandle c : originalConstraint.getDomains().get().keySet()) {
-
-            CarbondataColumnHandle cdch = (CarbondataColumnHandle) c;
-            Type type = cdch.getColumnType();
-
-            List<CarbonColumn> ccols = carbonTable.getCreateOrderColumn(carbonTable.getFactTableName());
-            Optional<CarbonColumn>  target = ccols.stream().filter(a -> a.getColName().equals(cdch.getColumnName())).findFirst();
-
-            if(target.get() == null)
-                return null;
-
-            DataType coltype = target.get().getDataType();
-            ColumnExpression colExpression = new ColumnExpression(cdch.getColumnName(), target.get().getDataType());
-            //colExpression.setColIndex(cs.getSchemaOrdinal());
-            colExpression.setDimension(target.get().isDimesion());
-            colExpression.setDimension(carbonTable.getDimensionByName(carbonTable.getFactTableName(), cdch.getColumnName()));
-            colExpression.setCarbonColumn(target.get());
-
-            domain = originalConstraint.getDomains().get().get(c);
-            checkArgument(domain.getType().isOrderable(), "Domain type must be orderable");
-
-            if (domain.getValues().isNone()) {
-                //return QueryBuilders.filteredQuery(null, FilterBuilders.missingFilter(columnName));
-                //return domain.isNullAllowed() ? columnName + " IS NULL" : "FALSE";
-                //new Expression()
-            }
-
-            if (domain.getValues().isAll()) {
-                //return QueryBuilders.filteredQuery(null, FilterBuilders.existsFilter(columnName));
-                //return domain.isNullAllowed() ? "TRUE" : columnName + " IS NOT NULL";
-            }
-
-            List<Object> singleValues = new ArrayList<>();
-            List<Expression> rangeFilter = new ArrayList<>();
-            for (Range range : domain.getValues().getRanges().getOrderedRanges()) {
-                checkState(!range.isAll()); // Already checked
-                if (range.isSingleValue()) {
-                    singleValues.add(range.getLow().getValue());
-                }
-                else
-                {
-                    List<String> rangeConjuncts = new ArrayList<>();
-                    if (!range.getLow().isLowerUnbounded()) {
-                        Object value = ConvertDataByType(range.getLow().getValue(), type);
-                        switch (range.getLow().getBound()) {
-                            case ABOVE:
-                                if (type == TimestampType.TIMESTAMP) {
-                                    //todo not now
-                                } else {
-                                    GreaterThanExpression greater = new GreaterThanExpression(colExpression, new LiteralExpression(value, coltype));
-                                    //greater.setRangeExpression(true);
-                                    rangeFilter.add(greater);
-                                }
-                                break;
-                            case EXACTLY:
-                                GreaterThanEqualToExpression greater = new GreaterThanEqualToExpression(colExpression, new LiteralExpression(value, coltype));
-                                //greater.setRangeExpression(true);
-                                rangeFilter.add(greater);
-                                break;
-                            case BELOW:
-                                throw new IllegalArgumentException("Low marker should never use BELOW bound");
-                            default:
-                                throw new AssertionError("Unhandled bound: " + range.getLow().getBound());
-                        }
-                    }
-                    if (!range.getHigh().isUpperUnbounded()) {
-                        Object value = ConvertDataByType(range.getHigh().getValue(), type);
-                        switch (range.getHigh().getBound()) {
-                            case ABOVE:
-                                throw new IllegalArgumentException("High marker should never use ABOVE bound");
-                            case EXACTLY:
-                                LessThanEqualToExpression less = new LessThanEqualToExpression(colExpression, new LiteralExpression(value, coltype));
-                                //less.setRangeExpression(true);
-                                rangeFilter.add(less);
-                                break;
-                            case BELOW:
-                                LessThanExpression less2 = new LessThanExpression(colExpression, new LiteralExpression(value, coltype));
-                                //less2.setRangeExpression(true);
-                                rangeFilter.add(less2);
-                                break;
-                            default:
-                                throw new AssertionError("Unhandled bound: " + range.getHigh().getBound());
-                        }
-                    }
+    return constraintBuilder.build();
+  }
+
+  public Expression parseFilterExpression(TupleDomain<ColumnHandle> originalConstraint,
+      CarbonTable carbonTable) {
+    ImmutableList.Builder<Expression> filters = ImmutableList.builder();
+
+    Domain domain = null;
+
+    for (ColumnHandle c : originalConstraint.getDomains().get().keySet()) {
+
+      CarbondataColumnHandle cdch = (CarbondataColumnHandle) c;
+      Type type = cdch.getColumnType();
+
+      List<CarbonColumn> ccols = carbonTable.getCreateOrderColumn(carbonTable.getFactTableName());
+      Optional<CarbonColumn> target =
+          ccols.stream().filter(a -> a.getColName().equals(cdch.getColumnName())).findFirst();
+
+      if (target.get() == null) return null;
+
+      DataType coltype = target.get().getDataType();
+      ColumnExpression colExpression =
+          new ColumnExpression(cdch.getColumnName(), target.get().getDataType());
+      //colExpression.setColIndex(cs.getSchemaOrdinal());
+      colExpression.setDimension(target.get().isDimesion());
+      colExpression.setDimension(
+          carbonTable.getDimensionByName(carbonTable.getFactTableName(), cdch.getColumnName()));
+      colExpression.setCarbonColumn(target.get());
+
+      domain = originalConstraint.getDomains().get().get(c);
+      checkArgument(domain.getType().isOrderable(), "Domain type must be orderable");
+
+      if (domain.getValues().isNone()) {
+        //return QueryBuilders.filteredQuery(null, FilterBuilders.missingFilter(columnName));
+        //return domain.isNullAllowed() ? columnName + " IS NULL" : "FALSE";
+        //new Expression()
+      }
+
+      if (domain.getValues().isAll()) {
+        //return QueryBuilders.filteredQuery(null, FilterBuilders.existsFilter(columnName));
+        //return domain.isNullAllowed() ? "TRUE" : columnName + " IS NOT NULL";
+      }
+
+      List<Object> singleValues = new ArrayList<>();
+      List<Expression> rangeFilter = new ArrayList<>();
+      for (Range range : domain.getValues().getRanges().getOrderedRanges()) {
+        checkState(!range.isAll()); // Already checked
+        if (range.isSingleValue()) {
+          singleValues.add(range.getLow().getValue());
+        } else {
+          List<String> rangeConjuncts = new ArrayList<>();
+          if (!range.getLow().isLowerUnbounded()) {
+            Object value = ConvertDataByType(range.getLow().getValue(), type);
+            switch (range.getLow().getBound()) {
+              case ABOVE:
+                if (type == TimestampType.TIMESTAMP) {
+                  //todo not now
+                } else {
+                  GreaterThanExpression greater = new GreaterThanExpression(colExpression,
+                      new LiteralExpression(value, coltype));
+                  //greater.setRangeExpression(true);
+                  rangeFilter.add(greater);
                 }
+                break;
+              case EXACTLY:
+                GreaterThanEqualToExpression greater =
+                    new GreaterThanEqualToExpression(colExpression,
+                        new LiteralExpression(value, coltype));
+                //greater.setRangeExpression(true);
+                rangeFilter.add(greater);
+                break;
+              case BELOW:
+                throw new IllegalArgumentException("Low marker should never use BELOW bound");
+              default:
+                throw new AssertionError("Unhandled bound: " + range.getLow().getBound());
             }
-
-            if (singleValues.size() == 1) {
-                Expression ex = null;
-                if (coltype.equals(DataType.STRING)) {
-                    ex = new EqualToExpression(colExpression, new LiteralExpression(((Slice) singleValues.get(0)).toStringUtf8(), coltype));
-                } else
-                    ex = new EqualToExpression(colExpression, new LiteralExpression(singleValues.get(0), coltype));
-                filters.add(ex);
-            }
-            else if(singleValues.size() > 1) {
-                ListExpression candidates = null;
-                List<Expression> exs = singleValues.stream().map((a) ->
-                {
-                    return new LiteralExpression(ConvertDataByType(a, type), coltype);
-                }).collect(Collectors.toList());
-                candidates = new ListExpression(exs);
-
-                if(candidates != null)
-                    filters.add(new InExpression(colExpression, candidates));
-            }
-            else if(rangeFilter.size() > 0){
-                if(rangeFilter.size() > 1) {
-                    Expression finalFilters = new OrExpression(rangeFilter.get(0), rangeFilter.get(1));
-                    if(rangeFilter.size() > 2)
-                    {
-                        for(int i = 2; i< rangeFilter.size(); i++)
-                        {
-                            filters.add(new AndExpression(finalFilters, rangeFilter.get(i)));
-                        }
-                    }
-                }
-                else if(rangeFilter.size() == 1)//only have one value
-                    filters.add(rangeFilter.get(0));
+          }
+          if (!range.getHigh().isUpperUnbounded()) {
+            Object value = ConvertDataByType(range.getHigh().getValue(), type);
+            switch (range.getHigh().getBound()) {
+              case ABOVE:
+                throw new IllegalArgumentException("High marker should never use ABOVE bound");
+              case EXACTLY:
+                LessThanEqualToExpression less = new LessThanEqualToExpression(colExpression,
+                    new LiteralExpression(value, coltype));
+                //less.setRangeExpression(true);
+                rangeFilter.add(less);
+                break;
+              case BELOW:
+                LessThanExpression less2 =
+                    new LessThanExpression(colExpression, new LiteralExpression(value, coltype));
+                //less2.setRangeExpression(true);
+                rangeFilter.add(less2);
+                break;
+              default:
+                throw new AssertionError("Unhandled bound: " + range.getHigh().getBound());
             }
+          }
         }
-
-        Expression finalFilters;
-        List<Expression> tmp = filters.build();
-        if(tmp.size() > 1) {
-            finalFilters = new AndExpression(tmp.get(0), tmp.get(1));
-            if(tmp.size() > 2)
-            {
-                for(int i = 2; i< tmp.size(); i++)
-                {
-                    finalFilters = new AndExpression(finalFilters, tmp.get(i));
-                }
+      }
+
+      if (singleValues.size() == 1) {
+        Expression ex = null;
+        if (coltype.equals(DataType.STRING)) {
+          ex = new EqualToExpression(colExpression,
+              new LiteralExpression(((Slice) singleValues.get(0)).toStringUtf8(), coltype));
+        } else ex = new EqualToExpression(colExpression,
+            new LiteralExpression(singleValues.get(0), coltype));
+        filters.add(ex);
+      } else if (singleValues.size() > 1) {
+        ListExpression candidates = null;
+        List<Expression> exs = singleValues.stream().map((a) -> {
+          return new LiteralExpression(ConvertDataByType(a, type), coltype);
+        }).collect(Collectors.toList());
+        candidates = new ListExpression(exs);
+
+        if (candidates != null) filters.add(new InExpression(colExpression, candidates));
+      } else if (rangeFilter.size() > 0) {
+        if (rangeFilter.size() > 1) {
+          Expression finalFilters = new OrExpression(rangeFilter.get(0), rangeFilter.get(1));
+          if (rangeFilter.size() > 2) {
+            for (int i = 2; i < rangeFilter.size(); i++) {
+              filters.add(new AndExpression(finalFilters, rangeFilter.get(i)));
             }
-        }
-        else if(tmp.size() == 1)
-            finalFilters = tmp.get(0);
-        else//no filter
-            return null;
-
-        return finalFilters;
-    }
-
-    public static DataType Spi2CarbondataTypeMapper(Type colType)
-    {
-        if(colType == BooleanType.BOOLEAN)
-            return DataType.BOOLEAN;
-        else if(colType == SmallintType.SMALLINT)
-            return DataType.SHORT;
-        else if(colType == IntegerType.INTEGER)
-            return DataType.INT;
-        else if(colType == BigintType.BIGINT)
-            return DataType.LONG;
-        else if(colType == DoubleType.DOUBLE)
-            return DataType.DOUBLE;
-        else if(colType == DecimalType.createDecimalType())
-            return DataType.DECIMAL;
-        else if(colType == VarcharType.VARCHAR)
-            return DataType.STRING;
-        else if(colType == DateType.DATE)
-            return DataType.DATE;
-        else if(colType == TimestampType.TIMESTAMP)
-            return DataType.TIMESTAMP;
-        else
-            return DataType.STRING;
+          }
+        } else if (rangeFilter.size() == 1)//only have one value
+          filters.add(rangeFilter.get(0));
+      }
     }
 
-
-    public Object ConvertDataByType(Object rawdata, Type type)
-    {
-        if(type.equals(IntegerType.INTEGER))
-            return new Integer((rawdata.toString()));
-        else if(type.equals(BigintType.BIGINT))
-            return (Long)rawdata;
-        else if(type.equals(VarcharType.VARCHAR))
-            return ((Slice)rawdata).toStringUtf8();
-        else if(type.equals(BooleanType.BOOLEAN))
-            return (Boolean)(rawdata);
-
-        return rawdata;
-    }
+    Expression finalFilters;
+    List<Expression> tmp = filters.build();
+    if (tmp.size() > 1) {
+      finalFilters = new AndExpression(tmp.get(0), tmp.get(1));
+      if (tmp.size() > 2) {
+        for (int i = 2; i < tmp.size(); i++) {
+          finalFilters = new AndExpression(finalFilters, tmp.get(i));
+        }
+      }
+    } else if (tmp.size() == 1) finalFilters = tmp.get(0);
+    else//no filter
+      return null;
+
+    return finalFilters;
+  }
+
+  public static DataType Spi2CarbondataTypeMapper(Type colType) {
+    if (colType == BooleanType.BOOLEAN) return DataType.BOOLEAN;
+    else if (colType == SmallintType.SMALLINT) return DataType.SHORT;
+    else if (colType == IntegerType.INTEGER) return DataType.INT;
+    else if (colType == BigintType.BIGINT) return DataType.LONG;
+    else if (colType == DoubleType.DOUBLE) return DataType.DOUBLE;
+    else if (colType == DecimalType.createDecimalType()) return DataType.DECIMAL;
+    else if (colType == VarcharType.VARCHAR) return DataType.STRING;
+    else if (colType == DateType.DATE) return DataType.DATE;
+    else if (colType == TimestampType.TIMESTAMP) return DataType.TIMESTAMP;
+    else return DataType.STRING;
+  }
+
+  public Object ConvertDataByType(Object rawdata, Type type) {
+    if (type.equals(IntegerType.INTEGER)) return new Integer((rawdata.toString()));
+    else if (type.equals(BigintType.BIGINT)) return (Long) rawdata;
+    else if (type.equals(VarcharType.VARCHAR)) return ((Slice) rawdata).toStringUtf8();
+    else if (type.equals(BooleanType.BOOLEAN)) return (Boolean) (rawdata);
+
+    return rawdata;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableHandle.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableHandle.java b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableHandle.java
index b0caf52..0a3c820 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableHandle.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableHandle.java
@@ -28,57 +28,44 @@ import java.util.Objects;
 import static java.util.Locale.ENGLISH;
 import static java.util.Objects.requireNonNull;
 
-public class CarbondataTableHandle
-        implements ConnectorTableHandle {
+public class CarbondataTableHandle implements ConnectorTableHandle {
 
-    private final String connectorId;
-    private final SchemaTableName schemaTableName;
+  private final String connectorId;
+  private final SchemaTableName schemaTableName;
 
-    @JsonCreator
-    public CarbondataTableHandle(
-            @JsonProperty("connectorId") String connectorId,
-            @JsonProperty("schemaTableName") SchemaTableName schemaTableName)
-    {
-        this.connectorId = requireNonNull(connectorId.toLowerCase(ENGLISH), "connectorId is null");
-        this.schemaTableName = schemaTableName;
-    }
-
-    @JsonProperty
-    public String getConnectorId()
-    {
-        return connectorId;
-    }
+  @JsonCreator public CarbondataTableHandle(@JsonProperty("connectorId") String connectorId,
+      @JsonProperty("schemaTableName") SchemaTableName schemaTableName) {
+    this.connectorId = requireNonNull(connectorId.toLowerCase(ENGLISH), "connectorId is null");
+    this.schemaTableName = schemaTableName;
+  }
 
-    @JsonProperty
-    public SchemaTableName getSchemaTableName()
-    {
-        return schemaTableName;
-    }
+  @JsonProperty public String getConnectorId() {
+    return connectorId;
+  }
 
-    @Override
-    public int hashCode()
-    {
-        return Objects.hash(connectorId, schemaTableName);
-    }
+  @JsonProperty public SchemaTableName getSchemaTableName() {
+    return schemaTableName;
+  }
 
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj) {
-            return true;
-        }
-        if ((obj == null) || (getClass() != obj.getClass())) {
-            return false;
-        }
+  @Override public int hashCode() {
+    return Objects.hash(connectorId, schemaTableName);
+  }
 
-        CarbondataTableHandle other = (CarbondataTableHandle) obj;
-        return Objects.equals(this.connectorId, other.connectorId) && this.schemaTableName.equals(other.getSchemaTableName());
+  @Override public boolean equals(Object obj) {
+    if (this == obj) {
+      return true;
     }
-
-    @Override
-    public String toString()
-    {
-        return Joiner.on(":").join(connectorId, schemaTableName.toString());
+    if ((obj == null) || (getClass() != obj.getClass())) {
+      return false;
     }
 
+    CarbondataTableHandle other = (CarbondataTableHandle) obj;
+    return Objects.equals(this.connectorId, other.connectorId) && this.schemaTableName
+        .equals(other.getSchemaTableName());
+  }
+
+  @Override public String toString() {
+    return Joiner.on(":").join(connectorId, schemaTableName.toString());
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableLayoutHandle.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableLayoutHandle.java b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableLayoutHandle.java
index dc0506f..bf6318f 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableLayoutHandle.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTableLayoutHandle.java
@@ -29,60 +29,43 @@ import java.util.Objects;
 import static com.google.common.base.Objects.toStringHelper;
 import static java.util.Objects.requireNonNull;
 
-public class CarbondataTableLayoutHandle
-        implements ConnectorTableLayoutHandle
-{
-    private final CarbondataTableHandle table;
-    private final TupleDomain<ColumnHandle> constraint;
+public class CarbondataTableLayoutHandle implements ConnectorTableLayoutHandle {
+  private final CarbondataTableHandle table;
+  private final TupleDomain<ColumnHandle> constraint;
 
-    @JsonCreator
-    public CarbondataTableLayoutHandle(@JsonProperty("table") CarbondataTableHandle table,
-                                       @JsonProperty("constraint") TupleDomain<ColumnHandle> constraint)
-    {
-        this.table = requireNonNull(table, "table is null");
-        this.constraint = requireNonNull(constraint, "constraint is null");
-    }
-
-    @JsonProperty
-    public CarbondataTableHandle getTable()
-    {
-        return table;
-    }
-
-    @JsonProperty
-    public TupleDomain<ColumnHandle> getConstraint()
-    {
-        return constraint;
-    }
+  @JsonCreator
+  public CarbondataTableLayoutHandle(@JsonProperty("table") CarbondataTableHandle table,
+      @JsonProperty("constraint") TupleDomain<ColumnHandle> constraint) {
+    this.table = requireNonNull(table, "table is null");
+    this.constraint = requireNonNull(constraint, "constraint is null");
+  }
 
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj) {
-            return true;
-        }
+  @JsonProperty public CarbondataTableHandle getTable() {
+    return table;
+  }
 
-        if (obj == null || getClass() != obj.getClass()) {
-            return false;
-        }
+  @JsonProperty public TupleDomain<ColumnHandle> getConstraint() {
+    return constraint;
+  }
 
-        CarbondataTableLayoutHandle other = (CarbondataTableLayoutHandle) obj;
-        return Objects.equals(table, other.table)
-                && Objects.equals(constraint, other.constraint);
+  @Override public boolean equals(Object obj) {
+    if (this == obj) {
+      return true;
     }
 
-    @Override
-    public int hashCode()
-    {
-        return Objects.hash(table, constraint);
+    if (obj == null || getClass() != obj.getClass()) {
+      return false;
     }
 
-    @Override
-    public String toString()
-    {
-        return toStringHelper(this)
-                .add("table", table)
-                .add("constraint", constraint)
-                .toString();
-    }
+    CarbondataTableLayoutHandle other = (CarbondataTableLayoutHandle) obj;
+    return Objects.equals(table, other.table) && Objects.equals(constraint, other.constraint);
+  }
+
+  @Override public int hashCode() {
+    return Objects.hash(table, constraint);
+  }
+
+  @Override public String toString() {
+    return toStringHelper(this).add("table", table).add("constraint", constraint).toString();
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTransactionHandle.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTransactionHandle.java b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTransactionHandle.java
index 06a84e2..e95c490 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTransactionHandle.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/CarbondataTransactionHandle.java
@@ -19,8 +19,6 @@ package org.apache.carbondata.presto;
 
 import com.facebook.presto.spi.connector.ConnectorTransactionHandle;
 
-public enum CarbondataTransactionHandle
-        implements ConnectorTransactionHandle
-{
-    INSTANCE
+public enum CarbondataTransactionHandle implements ConnectorTransactionHandle {
+  INSTANCE
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/Types.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/Types.java b/integration/presto/src/main/java/org/apache/carbondata/presto/Types.java
index b7b0d90..cb30907 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/Types.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/Types.java
@@ -23,16 +23,13 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
 public class Types {
-    private Types() {}
+  private Types() {
+  }
 
-    public static <A, B extends A> B checkType(A value, Class<B> target, String name)
-    {
-        requireNonNull(value, String.format(Locale.ENGLISH, "%s is null", name));
-        checkArgument(target.isInstance(value),
-                "%s must be of type %s, not %s",
-                name,
-                target.getName(),
-                value.getClass().getName());
-        return target.cast(value);
-    }
+  public static <A, B extends A> B checkType(A value, Class<B> target, String name) {
+    requireNonNull(value, String.format(Locale.ENGLISH, "%s is null", name));
+    checkArgument(target.isInstance(value), "%s must be of type %s, not %s", name, target.getName(),
+        value.getClass().getName());
+    return target.cast(value);
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonLocalInputSplit.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonLocalInputSplit.java b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonLocalInputSplit.java
index 9cde7a6..9940061 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonLocalInputSplit.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonLocalInputSplit.java
@@ -24,70 +24,59 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 
 public class CarbonLocalInputSplit {
 
-    private static final long serialVersionUID = 3520344046772190207L;
-    private String segmentId;
-    private String path;
-    private long start;
-    private long length;
-    private List<String> locations;
-    private short version;
-    /**
-     * Number of BlockLets in a block
-     */
-    private int numberOfBlocklets = 0;
+  private static final long serialVersionUID = 3520344046772190207L;
+  private String segmentId;
+  private String path;
+  private long start;
+  private long length;
+  private List<String> locations;
+  private short version;
+  /**
+   * Number of BlockLets in a block
+   */
+  private int numberOfBlocklets = 0;
 
+  @JsonProperty public short getVersion() {
+    return version;
+  }
 
-    @JsonProperty
-    public short getVersion(){
-        return version;
-    }
+  @JsonProperty public List<String> getLocations() {
+    return locations;
+  }
 
-    @JsonProperty
-    public List<String> getLocations() {
-        return locations;
-    }
+  @JsonProperty public long getLength() {
+    return length;
+  }
 
-    @JsonProperty
-    public long getLength() {
-        return length;
-    }
+  @JsonProperty public long getStart() {
+    return start;
+  }
 
-    @JsonProperty
-    public long getStart() {
-        return start;
-    }
+  @JsonProperty public String getPath() {
+    return path;
+  }
 
-    @JsonProperty
-    public String getPath() {
-        return path;
-    }
+  @JsonProperty public String getSegmentId() {
+    return segmentId;
+  }
 
-    @JsonProperty
-    public String getSegmentId() {
-        return segmentId;
-    }
+  @JsonProperty public int getNumberOfBlocklets() {
+    return numberOfBlocklets;
+  }
 
-    @JsonProperty
-    public int getNumberOfBlocklets() {
-        return numberOfBlocklets;
-    }
-
-    @JsonCreator
-    public CarbonLocalInputSplit(@JsonProperty("segmentId") String segmentId,
-                                 @JsonProperty("path") String path,
-                                 @JsonProperty("start") long start,
-                                 @JsonProperty("length") long length,
-                                 @JsonProperty("locations") List<String> locations,
-                                 @JsonProperty("numberOfBlocklets") int numberOfBlocklets/*,
+  @JsonCreator public CarbonLocalInputSplit(@JsonProperty("segmentId") String segmentId,
+      @JsonProperty("path") String path, @JsonProperty("start") long start,
+      @JsonProperty("length") long length, @JsonProperty("locations") List<String> locations,
+      @JsonProperty("numberOfBlocklets") int numberOfBlocklets/*,
                                  @JsonProperty("tableBlockInfo") TableBlockInfo tableBlockInfo*/,
-                                 @JsonProperty("version") short version) {
-        this.path = path;
-        this.start = start;
-        this.length = length;
-        this.segmentId = segmentId;
-        this.locations = locations;
-        this.numberOfBlocklets = numberOfBlocklets;
-        //this.tableBlockInfo = tableBlockInfo;
-        this.version = version;
-    }
+      @JsonProperty("version") short version) {
+    this.path = path;
+    this.start = start;
+    this.length = length;
+    this.segmentId = segmentId;
+    this.locations = locations;
+    this.numberOfBlocklets = numberOfBlocklets;
+    //this.tableBlockInfo = tableBlockInfo;
+    this.version = version;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableCacheModel.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableCacheModel.java b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableCacheModel.java
index ee636b1..b138f18 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableCacheModel.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableCacheModel.java
@@ -24,21 +24,17 @@ import org.apache.carbondata.core.util.path.CarbonTablePath;
 
 public class CarbonTableCacheModel {
 
-    public CarbonTableIdentifier carbonTableIdentifier;
-    public CarbonTablePath carbonTablePath;
+  public CarbonTableIdentifier carbonTableIdentifier;
+  public CarbonTablePath carbonTablePath;
 
-    public TableInfo tableInfo;
-    public CarbonTable carbonTable;
-    public String[] segments;
+  public TableInfo tableInfo;
+  public CarbonTable carbonTable;
+  public String[] segments;
 
-    public boolean isValid()
-    {
-        if(carbonTable != null
-                && carbonTablePath != null
-                && carbonTableIdentifier != null)
-            return true;
-        else
-            return false;
-    }
+  public boolean isValid() {
+    if (carbonTable != null && carbonTablePath != null && carbonTableIdentifier != null)
+      return true;
+    else return false;
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/27123300/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableConfig.java
----------------------------------------------------------------------
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableConfig.java b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableConfig.java
index a682b66..a2b0a8c 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableConfig.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableConfig.java
@@ -22,41 +22,35 @@ import io.airlift.configuration.Config;
 import javax.validation.constraints.NotNull;
 
 public class CarbonTableConfig {
-    //read from config
-    private String dbPtah;
-    private String tablePath;
-    private String storePath;
-
-    @NotNull
-    public String getDbPtah() {
-        return dbPtah;
-    }
-
-    @Config("carbondata-store")
-    public CarbonTableConfig setDbPtah(String dbPtah) {
-        this.dbPtah = dbPtah;
-        return this;
-    }
-
-    @NotNull
-    public String getTablePath() {
-        return tablePath;
-    }
-
-    @Config("carbondata-store")
-    public CarbonTableConfig setTablePath(String tablePath) {
-        this.tablePath = tablePath;
-        return this;
-    }
-
-    @NotNull
-    public String getStorePath() {
-        return storePath;
-    }
-
-    @Config("carbondata-store")
-    public CarbonTableConfig setStorePath(String storePath) {
-        this.storePath = storePath;
-        return this;
-    }
+  //read from config
+  private String dbPtah;
+  private String tablePath;
+  private String storePath;
+
+  @NotNull public String getDbPtah() {
+    return dbPtah;
+  }
+
+  @Config("carbondata-store") public CarbonTableConfig setDbPtah(String dbPtah) {
+    this.dbPtah = dbPtah;
+    return this;
+  }
+
+  @NotNull public String getTablePath() {
+    return tablePath;
+  }
+
+  @Config("carbondata-store") public CarbonTableConfig setTablePath(String tablePath) {
+    this.tablePath = tablePath;
+    return this;
+  }
+
+  @NotNull public String getStorePath() {
+    return storePath;
+  }
+
+  @Config("carbondata-store") public CarbonTableConfig setStorePath(String storePath) {
+    this.storePath = storePath;
+    return this;
+  }
 }