use of org.apache.drill.exec.physical.impl.scan.project.ScanLevelProjection in project drill by apache.
the class TestColumnsArrayParser method testColumnsArrayCaseInsensitive.
@Test
public void testColumnsArrayCaseInsensitive() {
// Sic: case variation of standard name
ScanLevelProjection scanProj = ScanLevelProjection.build(RowSetTestUtils.projectList("Columns"), ScanTestUtils.parsers(new ColumnsArrayParser(true)));
assertFalse(scanProj.projectAll());
assertEquals(1, scanProj.requestedCols().size());
assertEquals(1, scanProj.columns().size());
assertEquals("Columns", scanProj.columns().get(0).name());
// Verify column type
assertTrue(scanProj.columns().get(0) instanceof UnresolvedColumnsArrayColumn);
}
use of org.apache.drill.exec.physical.impl.scan.project.ScanLevelProjection in project drill by apache.
the class TestImplicitColumnParser method testBasics.
@Test
public void testBasics() {
Path filePath = new Path("hdfs:///w/x/y/z.csv");
ImplicitColumnManager implictColManager = new ImplicitColumnManager(fixture.getOptionManager(), standardOptions(filePath));
// Simulate SELECT a, b, c ...
ScanLevelProjection scanProj = ScanLevelProjection.build(RowSetTestUtils.projectList("a", "b", "c"), Lists.newArrayList(implictColManager.projectionParser()));
// Verify
assertFalse(scanProj.projectAll());
assertFalse(implictColManager.hasImplicitCols());
}
use of org.apache.drill.exec.physical.impl.scan.project.ScanLevelProjection in project drill by apache.
the class TestImplicitColumnParser method testShadowed.
/**
* Verify that names that look like metadata columns, but appear
* to be maps or arrays, are not interpreted as metadata. That is,
* the projected table map or array "shadows" the metadata column.
*/
@Test
public void testShadowed() {
Path filePath = new Path("hdfs:///w/x/y/z.csv");
ImplicitColumnManager implictColManager = new ImplicitColumnManager(fixture.getOptionManager(), standardOptions(filePath));
ScanLevelProjection scanProj = ScanLevelProjection.build(RowSetTestUtils.projectList(ScanTestUtils.FILE_NAME_COL + ".a", ScanTestUtils.FILE_PATH_COL + "[0]", ScanTestUtils.partitionColName(0) + ".b", ScanTestUtils.partitionColName(1) + "[0]", ScanTestUtils.SUFFIX_COL), Lists.newArrayList(implictColManager.projectionParser()));
List<ColumnProjection> cols = scanProj.columns();
assertEquals(5, cols.size());
for (int i = 0; i < 4; i++) {
assertTrue(scanProj.columns().get(i) instanceof UnresolvedColumn);
}
assertTrue(scanProj.columns().get(4) instanceof FileMetadataColumn);
}
use of org.apache.drill.exec.physical.impl.scan.project.ScanLevelProjection in project drill by apache.
the class TestImplicitColumnParser method testLegacyWildcardAndFileMetadataMixed.
/**
* As above, but include implicit columns before and after the
* wildcard.
*/
@Test
public void testLegacyWildcardAndFileMetadataMixed() {
Path filePath = new Path("hdfs:///w/x/y/z.csv");
ImplicitColumnOptions options = standardOptions(filePath);
options.useLegacyWildcardExpansion(true);
ImplicitColumnManager implictColManager = new ImplicitColumnManager(fixture.getOptionManager(), options);
ScanLevelProjection scanProj = ScanLevelProjection.build(RowSetTestUtils.projectList(ScanTestUtils.FILE_NAME_COL, SchemaPath.DYNAMIC_STAR, ScanTestUtils.SUFFIX_COL), Lists.newArrayList(implictColManager.projectionParser()));
List<ColumnProjection> cols = scanProj.columns();
assertEquals(5, cols.size());
assertTrue(scanProj.columns().get(0) instanceof FileMetadataColumn);
assertTrue(scanProj.columns().get(1) instanceof UnresolvedWildcardColumn);
assertTrue(scanProj.columns().get(2) instanceof FileMetadataColumn);
assertTrue(scanProj.columns().get(3) instanceof PartitionColumn);
assertTrue(scanProj.columns().get(4) instanceof PartitionColumn);
}
use of org.apache.drill.exec.physical.impl.scan.project.ScanLevelProjection in project drill by apache.
the class TestImplicitColumnParser method testLegacyWildcardAndFileMetadata.
/**
* Combine wildcard and file metadata columns. The wildcard expands
* table columns but not metadata columns.
*/
@Test
public void testLegacyWildcardAndFileMetadata() {
Path filePath = new Path("hdfs:///w/x/y/z.csv");
ImplicitColumnOptions options = standardOptions(filePath);
options.useLegacyWildcardExpansion(true);
ImplicitColumnManager implictColManager = new ImplicitColumnManager(fixture.getOptionManager(), options);
ScanLevelProjection scanProj = ScanLevelProjection.build(RowSetTestUtils.projectList(SchemaPath.DYNAMIC_STAR, ScanTestUtils.FILE_NAME_COL, ScanTestUtils.SUFFIX_COL), Lists.newArrayList(implictColManager.projectionParser()));
List<ColumnProjection> cols = scanProj.columns();
assertEquals(5, cols.size());
assertTrue(scanProj.columns().get(0) instanceof UnresolvedWildcardColumn);
assertTrue(scanProj.columns().get(1) instanceof FileMetadataColumn);
assertTrue(scanProj.columns().get(2) instanceof FileMetadataColumn);
assertTrue(scanProj.columns().get(3) instanceof PartitionColumn);
assertTrue(scanProj.columns().get(4) instanceof PartitionColumn);
}
Aggregations