DRILL-8273: Complex typed columns cannot be made implicit
diff --git a/contrib/format-excel/src/main/java/org/apache/drill/exec/store/excel/ExcelBatchReader.java b/contrib/format-excel/src/main/java/org/apache/drill/exec/store/excel/ExcelBatchReader.java
index cbdc144..3af6cc7 100644
--- a/contrib/format-excel/src/main/java/org/apache/drill/exec/store/excel/ExcelBatchReader.java
+++ b/contrib/format-excel/src/main/java/org/apache/drill/exec/store/excel/ExcelBatchReader.java
@@ -867,7 +867,6 @@
}
}
-
public static class TimestampCellWriter extends ExcelBatchReader.CellWriter {
TimestampCellWriter(ScalarWriter columnWriter) {
super(columnWriter);
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/resultSet/project/TestTupleProjection.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/resultSet/project/TestTupleProjection.java
index 8484e29..3fa27ff 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/resultSet/project/TestTupleProjection.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/resultSet/project/TestTupleProjection.java
@@ -60,10 +60,13 @@
MetadataUtils.newScalar("a", Types.required(MinorType.INT));
private static final ColumnMetadata UNPROJECTED_SPECIAL_COLUMN =
MetadataUtils.newScalar("bar", Types.required(MinorType.INT));
+ private static final ColumnMetadata COMPLEX_SPECIAL_COLUMN =
+ MetadataUtils.newMap("a_map");
static {
SPECIAL_COLUMN.setBooleanProperty(ColumnMetadata.EXCLUDE_FROM_WILDCARD, true);
UNPROJECTED_SPECIAL_COLUMN.setBooleanProperty(ColumnMetadata.EXCLUDE_FROM_WILDCARD, true);
+ COMPLEX_SPECIAL_COLUMN.setBooleanProperty(ColumnMetadata.EXCLUDE_FROM_WILDCARD, true);
}
/**
@@ -76,6 +79,7 @@
assertTrue(projSet.isProjected("foo"));
assertTrue(projSet.isProjected(NORMAL_COLUMN));
assertFalse(projSet.isProjected(SPECIAL_COLUMN));
+ assertFalse(projSet.isProjected(COMPLEX_SPECIAL_COLUMN));
assertTrue(projSet.projections().isEmpty());
assertFalse(projSet.isEmpty());
}
@@ -91,6 +95,7 @@
assertNull(projSet.get("foo"));
assertTrue(projSet.isProjected(NORMAL_COLUMN));
assertFalse(projSet.isProjected(SPECIAL_COLUMN));
+ assertFalse(projSet.isProjected(COMPLEX_SPECIAL_COLUMN));
assertEquals(1, projSet.projections().size());
assertFalse(projSet.isEmpty());
}
@@ -107,6 +112,7 @@
assertFalse(projSet.isProjected("foo"));
assertFalse(projSet.isProjected(NORMAL_COLUMN));
assertFalse(projSet.isProjected(SPECIAL_COLUMN));
+ assertFalse(projSet.isProjected(COMPLEX_SPECIAL_COLUMN));
assertTrue(projSet.projections().isEmpty());
assertTrue(projSet.isEmpty());
}
@@ -128,6 +134,7 @@
assertTrue(projSet.isProjected(SPECIAL_COLUMN));
assertFalse(projSet.isProjected(UNPROJECTED_COLUMN));
assertFalse(projSet.isProjected(UNPROJECTED_SPECIAL_COLUMN));
+ assertFalse(projSet.isProjected(COMPLEX_SPECIAL_COLUMN));
List<RequestedColumn> cols = projSet.projections();
assertEquals(3, cols.size());
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/DictColumnMetadata.java b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/DictColumnMetadata.java
index 09a268a..8b5bd6f 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/DictColumnMetadata.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/DictColumnMetadata.java
@@ -72,7 +72,9 @@
@Override
public ColumnMetadata cloneEmpty() {
- return new DictColumnMetadata(name, mode, new TupleSchema());
+ ColumnMetadata colMeta = new DictColumnMetadata(name, mode, new TupleSchema());
+ colMeta.setProperties(this.properties());
+ return colMeta;
}
@Override
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/MapColumnMetadata.java b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/MapColumnMetadata.java
index 1883451..3f192cb 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/MapColumnMetadata.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/MapColumnMetadata.java
@@ -64,7 +64,9 @@
@Override
public ColumnMetadata cloneEmpty() {
- return new MapColumnMetadata(name, mode, new TupleSchema());
+ ColumnMetadata colMeta = new MapColumnMetadata(name, mode, new TupleSchema());
+ colMeta.setProperties(this.properties());
+ return colMeta;
}
@Override
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/RepeatedListColumnMetadata.java b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/RepeatedListColumnMetadata.java
index 800f83b..501f62e 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/RepeatedListColumnMetadata.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/RepeatedListColumnMetadata.java
@@ -79,7 +79,9 @@
@Override
public ColumnMetadata cloneEmpty() {
- return new RepeatedListColumnMetadata(name, null);
+ ColumnMetadata colMeta = new RepeatedListColumnMetadata(name, null);
+ colMeta.setProperties(this.properties());
+ return colMeta;
}
@Override
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/VariantColumnMetadata.java b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/VariantColumnMetadata.java
index 731f606..6e3c93f 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/VariantColumnMetadata.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/record/metadata/VariantColumnMetadata.java
@@ -140,7 +140,9 @@
@Override
public ColumnMetadata cloneEmpty() {
- return new VariantColumnMetadata(name, type, mode, new VariantSchema());
+ VariantColumnMetadata colMeta = new VariantColumnMetadata(name, type, mode, new VariantSchema());
+ colMeta.setProperties(this.properties());
+ return colMeta;
}
@Override