You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/06/06 04:52:20 UTC
[03/23] git commit: Update projection pushdown so that it rewrites
row type of scan.
Update projection pushdown so that it rewrites row type of scan.
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/cec3fa55
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/cec3fa55
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/cec3fa55
Branch: refs/heads/master
Commit: cec3fa559bab9a1378fc17b96294373325db72c1
Parents: 69e5d68
Author: Jacques Nadeau <ja...@apache.org>
Authored: Wed Jun 4 15:43:29 2014 -0700
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Wed Jun 4 16:38:42 2014 -0700
----------------------------------------------------------------------
.../exec/store/hbase/HBaseStoragePlugin.java | 4 +-
.../planner/logical/DrillPushProjIntoScan.java | 27 ++-
.../drill/exec/planner/physical/PrelUtil.java | 172 +++++++++++++++++--
.../planner/physical/visitor/RelUniqifier.java | 4 +-
.../exec/store/dfs/easy/EasyFormatPlugin.java | 2 +
.../exec/store/dfs/easy/EasyGroupScan.java | 3 +-
.../exec/store/direct/DirectGroupScan.java | 2 +-
.../exec/store/easy/json/JSONFormatPlugin.java | 5 +
.../exec/store/easy/text/TextFormatPlugin.java | 5 +
.../apache/drill/exec/store/hive/HiveScan.java | 2 +-
.../java/org/apache/drill/PlanTestBase.java | 2 +-
.../exec/cache/TestCacheSerialization.java | 2 +-
.../exec/physical/impl/writer/TestWriter.java | 17 +-
13 files changed, 206 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
----------------------------------------------------------------------
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
index 7bc7c4b..e105836 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
@@ -76,7 +76,9 @@ public class HBaseStoragePlugin extends AbstractStoragePlugin {
}
public Set<StoragePluginOptimizerRule> getOptimizerRules() {
- return ImmutableSet.of(HBasePushFilterIntoScan.INSTANCE);
+ return ImmutableSet.of();
+// reenable once DRILL-904 is fixed
+// return ImmutableSet.of(HBasePushFilterIntoScan.INSTANCE);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
index 0dd9b9e..829eb14 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushProjIntoScan.java
@@ -24,12 +24,15 @@ import java.util.List;
import net.hydromatic.optiq.rules.java.JavaRules.EnumerableTableAccessRel;
import org.apache.drill.common.exceptions.DrillRuntimeException;
-import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.exec.planner.physical.PrelUtil;
+import org.apache.drill.exec.planner.physical.PrelUtil.ProjectPushInfo;
import org.eigenbase.rel.ProjectRel;
import org.eigenbase.rel.rules.RemoveTrivialProjectRule;
import org.eigenbase.relopt.RelOptRule;
import org.eigenbase.relopt.RelOptRuleCall;
+import org.eigenbase.rex.RexNode;
+
+import com.google.common.collect.Lists;
public class DrillPushProjIntoScan extends RelOptRule {
public static final RelOptRule INSTANCE = new DrillPushProjIntoScan();
@@ -38,31 +41,37 @@ public class DrillPushProjIntoScan extends RelOptRule {
super(RelOptHelper.some(ProjectRel.class, RelOptHelper.any(EnumerableTableAccessRel.class)), "DrillPushProjIntoScan");
}
+
@Override
public void onMatch(RelOptRuleCall call) {
final ProjectRel proj = (ProjectRel) call.rel(0);
final EnumerableTableAccessRel scan = (EnumerableTableAccessRel) call.rel(1);
try {
- List<SchemaPath> columns = PrelUtil.getColumns(scan.getRowType(), proj.getProjects());
+ ProjectPushInfo columnInfo = PrelUtil.getColumns(scan.getRowType(), proj.getProjects());
- if (columns.isEmpty() || !scan.getTable().unwrap(DrillTable.class)
- .getGroupScan().canPushdownProjects(columns)) {
- return;
- }
+ if(columnInfo == null || columnInfo.isStarQuery() //
+ || !scan.getTable().unwrap(DrillTable.class) //
+ .getGroupScan().canPushdownProjects(columnInfo.columns)) return;
final DrillScanRel newScan =
new DrillScanRel(scan.getCluster(),
scan.getTraitSet().plus(DrillRel.DRILL_LOGICAL),
scan.getTable(),
- scan.getRowType(),
- columns);
+ columnInfo.createNewRowType(proj.getChild().getCluster().getTypeFactory()),
+ columnInfo.columns);
+
+
+ List<RexNode> newProjects = Lists.newArrayList();
+ for(RexNode n : proj.getChildExps()){
+ newProjects.add(n.accept(columnInfo.getInputRewriter()));
+ }
final DrillProjectRel newProj =
new DrillProjectRel(proj.getCluster(),
proj.getTraitSet().plus(DrillRel.DRILL_LOGICAL),
newScan,
- proj.getChildExps(),
+ newProjects,
proj.getRowType());
if (RemoveTrivialProjectRule.isTrivial(newProj)) {
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
index 1de2db3..d982647 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PrelUtil.java
@@ -31,8 +31,6 @@ import org.apache.drill.common.expression.PathSegment.ArraySegment;
import org.apache.drill.common.expression.PathSegment.NameSegment;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.logical.data.Order.Ordering;
-import org.apache.drill.exec.physical.base.PhysicalOperator;
-import org.apache.drill.exec.physical.config.SelectionVectorRemover;
import org.apache.drill.exec.planner.physical.DrillDistributionTrait.DistributionField;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
import org.eigenbase.rel.RelCollation;
@@ -43,14 +41,19 @@ import org.eigenbase.relopt.RelOptPlanner;
import org.eigenbase.relopt.RelOptRuleCall;
import org.eigenbase.relopt.RelTraitSet;
import org.eigenbase.reltype.RelDataType;
+import org.eigenbase.reltype.RelDataTypeFactory;
+import org.eigenbase.reltype.RelDataTypeField;
import org.eigenbase.rex.RexCall;
import org.eigenbase.rex.RexInputRef;
import org.eigenbase.rex.RexLiteral;
+import org.eigenbase.rex.RexLocalRef;
import org.eigenbase.rex.RexNode;
+import org.eigenbase.rex.RexShuttle;
import org.eigenbase.rex.RexVisitorImpl;
-import com.google.common.collect.Lists;
+import com.carrotsearch.hppc.IntIntOpenHashMap;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
public class PrelUtil {
@@ -109,34 +112,124 @@ public class PrelUtil {
return new SelectionVectorRemoverPrel(prel);
}
- public static List<SchemaPath> getColumns(RelDataType rowType, List<RexNode> projects) {
+ public static ProjectPushInfo getColumns(RelDataType rowType, List<RexNode> projects) {
final List<String> fieldNames = rowType.getFieldNames();
- if (fieldNames.isEmpty()) return ImmutableList.of();
+ if (fieldNames.isEmpty()) return null;
- RefFieldsVisitor v = new RefFieldsVisitor(fieldNames);
+ RefFieldsVisitor v = new RefFieldsVisitor(rowType);
for (RexNode exp : projects) {
PathSegment segment = exp.accept(v);
v.addColumn(segment);
}
- List<SchemaPath> columns = v.getColumns();
- for (SchemaPath column : columns) {
- if (column.getRootSegment().getPath().startsWith("*")) {
- return ImmutableList.of();
+ return v.getInfo();
+
+ }
+
+ public static class DesiredField {
+ public final int origIndex;
+ public final String name;
+ public final RelDataTypeField field;
+
+ public DesiredField(int origIndex, String name, RelDataTypeField field) {
+ super();
+ this.origIndex = origIndex;
+ this.name = name;
+ this.field = field;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((field == null) ? 0 : field.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + origIndex;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ DesiredField other = (DesiredField) obj;
+ if (field == null) {
+ if (other.field != null)
+ return false;
+ } else if (!field.equals(other.field))
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (origIndex != other.origIndex)
+ return false;
+ return true;
+ }
+
+ }
+
+
+ public static class ProjectPushInfo {
+ public final List<SchemaPath> columns;
+ public final List<DesiredField> desiredFields;
+ public final InputRewriter rewriter;
+ private final List<String> fieldNames;
+ private final List<RelDataType> types;
+
+ public ProjectPushInfo(List<SchemaPath> columns, ImmutableList<DesiredField> desiredFields) {
+ super();
+ this.columns = columns;
+ this.desiredFields = desiredFields;
+
+ this.fieldNames = Lists.newArrayListWithCapacity(desiredFields.size());
+ this.types = Lists.newArrayListWithCapacity(desiredFields.size());
+ IntIntOpenHashMap oldToNewIds = new IntIntOpenHashMap();
+
+ int i =0;
+ for(DesiredField f : desiredFields){
+ fieldNames.add(f.name);
+ types.add(f.field.getType());
+ oldToNewIds.put(f.origIndex, i);
+ i++;
+ }
+ this.rewriter = new InputRewriter(oldToNewIds);
+ }
+
+ public InputRewriter getInputRewriter(){
+ return rewriter;
+ }
+
+ public boolean isStarQuery() {
+ for (SchemaPath column : columns) {
+ if (column.getRootSegment().getPath().startsWith("*")) {
+ return true;
+ }
}
+ return false;
}
- return columns;
+ public RelDataType createNewRowType(RelDataTypeFactory factory) {
+ return factory.createStructType(types, fieldNames);
+ }
}
/** Visitor that finds the set of inputs that are used. */
private static class RefFieldsVisitor extends RexVisitorImpl<PathSegment> {
final Set<SchemaPath> columns = Sets.newLinkedHashSet();
final private List<String> fieldNames;
+ final private List<RelDataTypeField> fields;
+ final private Set<DesiredField> desiredFields = Sets.newHashSet();
- public RefFieldsVisitor(List<String> fieldNames) {
+ public RefFieldsVisitor(RelDataType rowType) {
super(true);
- this.fieldNames = fieldNames;
+ this.fieldNames = rowType.getFieldNames();
+ this.fields = rowType.getFieldList();
}
public void addColumn(PathSegment segment) {
@@ -145,13 +238,19 @@ public class PrelUtil {
}
}
- public List<SchemaPath> getColumns() {
- return ImmutableList.copyOf(columns);
+ public ProjectPushInfo getInfo(){
+ return new ProjectPushInfo(ImmutableList.copyOf(columns), ImmutableList.copyOf(desiredFields));
}
+
@Override
public PathSegment visitInputRef(RexInputRef inputRef) {
- return new NameSegment(fieldNames.get(inputRef.getIndex()));
+ int index = inputRef.getIndex();
+ String name = fieldNames.get(index);
+ RelDataTypeField field = fields.get(index);
+ DesiredField f = new DesiredField(index, name, field);
+ desiredFields.add(f);
+ return new NameSegment(name);
}
@Override
@@ -196,4 +295,45 @@ public class PrelUtil {
return set;
}
}
+
+ public static class InputRefRemap {
+ private int oldIndex;
+ private int newIndex;
+
+ public InputRefRemap(int oldIndex, int newIndex) {
+ super();
+ this.oldIndex = oldIndex;
+ this.newIndex = newIndex;
+ }
+ public int getOldIndex() {
+ return oldIndex;
+ }
+ public int getNewIndex() {
+ return newIndex;
+ }
+
+
+ }
+
+
+ public static class InputRewriter extends RexShuttle {
+
+ final IntIntOpenHashMap map;
+
+ public InputRewriter(IntIntOpenHashMap map) {
+ super();
+ this.map = map;
+ }
+
+ @Override
+ public RexNode visitInputRef(RexInputRef inputRef) {
+ return new RexInputRef(map.get(inputRef.getIndex()), inputRef.getType());
+ }
+
+ @Override
+ public RexNode visitLocalRef(RexLocalRef localRef) {
+ return new RexInputRef(map.get(localRef.getIndex()), localRef.getType());
+ }
+
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
index 7b84edc..c5bf293 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RelUniqifier.java
@@ -23,8 +23,8 @@ import java.util.Set;
import org.apache.drill.exec.planner.physical.Prel;
import org.eigenbase.rel.RelNode;
-import com.google.hive12.hive12.common.collect.Sets;
-import com.google.hive12.hive12.hive12.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.collect.Lists;
public class RelUniqifier extends BasePrelVisitor<Prel, Set<Prel>, RuntimeException>{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(RelUniqifier.class);
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyFormatPlugin.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyFormatPlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyFormatPlugin.java
index e702c9c..bdab07f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyFormatPlugin.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyFormatPlugin.java
@@ -97,6 +97,8 @@ public abstract class EasyFormatPlugin<T extends FormatPluginConfig> implements
return name;
}
+ public abstract boolean supportsPushDown();
+
/**
* Whether or not you can split the format based on blocks within file boundaries. If not, the simple format engine will
* only split on file boundaries.
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java
index 2b63601..fa219e7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java
@@ -224,6 +224,7 @@ public class EasyGroupScan extends AbstractGroupScan{
@Override
public GroupScan clone(List<SchemaPath> columns) {
+ if(!formatPlugin.supportsPushDown()) throw new IllegalStateException(String.format("%s doesn't support pushdown.", this.getClass().getSimpleName()));
EasyGroupScan newScan = new EasyGroupScan(this);
newScan.columns = columns;
return newScan;
@@ -231,7 +232,7 @@ public class EasyGroupScan extends AbstractGroupScan{
@JsonIgnore
public boolean canPushdownProjects(List<SchemaPath> columns) {
- return true;
+ return this.formatPlugin.supportsPushDown();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/store/direct/DirectGroupScan.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/direct/DirectGroupScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/direct/DirectGroupScan.java
index 138a024..bcf5984 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/direct/DirectGroupScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/direct/DirectGroupScan.java
@@ -72,7 +72,7 @@ public class DirectGroupScan extends AbstractGroupScan{
@Override
public PhysicalOperator getNewWithChildren(List<PhysicalOperator> children) throws ExecutionSetupException {
assert children == null || children.isEmpty();
- return new DirectSubScan(reader);
+ return new DirectGroupScan(reader);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONFormatPlugin.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONFormatPlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONFormatPlugin.java
index e410306..7fbb9c7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONFormatPlugin.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONFormatPlugin.java
@@ -93,5 +93,10 @@ public class JSONFormatPlugin extends EasyFormatPlugin<JSONFormatConfig> {
throw new UnsupportedOperationException();
}
+ @Override
+ public boolean supportsPushDown() {
+ return false;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/TextFormatPlugin.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/TextFormatPlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/TextFormatPlugin.java
index 15d2e37..3935008 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/TextFormatPlugin.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/TextFormatPlugin.java
@@ -140,4 +140,9 @@ public class TextFormatPlugin extends EasyFormatPlugin<TextFormatPlugin.TextForm
public int getWriterOperatorType() {
return CoreOperatorType.TEXT_WRITER_VALUE;
}
+
+ @Override
+ public boolean supportsPushDown() {
+ return true;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/main/java/org/apache/drill/exec/store/hive/HiveScan.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/hive/HiveScan.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/hive/HiveScan.java
index c6105ec..504348d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/hive/HiveScan.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/hive/HiveScan.java
@@ -268,7 +268,7 @@ public class HiveScan extends AbstractGroupScan {
@Override
public PhysicalOperator getNewWithChildren(List<PhysicalOperator> children) throws ExecutionSetupException {
- return new HiveScan(hiveReadEntry, storagePlugin, columns);
+ return new HiveScan(this);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java b/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
index 89452a1..6331116 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java
@@ -52,7 +52,7 @@ public class PlanTestBase extends BaseTestQuery {
String planStr = getPlanInString(sql, JSON_FORMAT);
for (String colNames : expectedSubstrs) {
- assertTrue(planStr.contains(colNames));
+ assertTrue(String.format("Unable to find expected string %s in plan: %s!", colNames, planStr), planStr.contains(colNames));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestCacheSerialization.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestCacheSerialization.java b/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestCacheSerialization.java
index 6375d66..fec3417 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestCacheSerialization.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestCacheSerialization.java
@@ -55,7 +55,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
import com.google.common.collect.Lists;
-import com.google.hive12.common.collect.Maps;
+import com.google.common.collect.Maps;
public class TestCacheSerialization extends ExecTest {
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/cec3fa55/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/writer/TestWriter.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/writer/TestWriter.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/writer/TestWriter.java
index 8d9a74d..2a6eb39 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/writer/TestWriter.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/writer/TestWriter.java
@@ -17,14 +17,15 @@
*/
package org.apache.drill.exec.physical.impl.writer;
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
import org.apache.drill.BaseTestQuery;
-import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.record.RecordBatchLoader;
-import org.apache.drill.exec.record.TypedFieldId;
import org.apache.drill.exec.rpc.user.QueryResultBatch;
import org.apache.drill.exec.vector.BigIntVector;
import org.apache.drill.exec.vector.VarCharVector;
@@ -33,12 +34,11 @@ import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import com.google.common.base.Charsets;
+import com.google.common.io.Files;
public class TestWriter extends BaseTestQuery {
@@ -53,6 +53,7 @@ public class TestWriter extends BaseTestQuery {
fs = FileSystem.get(conf);
}
+ @Ignore("DRILL-903")
@Test
public void simpleCsv() throws Exception {
// before executing the test deleting the existing CSV files in /tmp/csvtest