You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by vo...@apache.org on 2018/10/08 12:43:52 UTC

[drill] 02/06: DRILL-6759: Make columns array name for csv data case insensitive

This is an automated email from the ASF dual-hosted git repository.

volodymyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git

commit 0ca84ea40812527b481c5a052687021b43fdfc88
Author: Arina Ielchiieva <ar...@gmail.com>
AuthorDate: Tue Oct 2 16:48:53 2018 +0300

    DRILL-6759: Make columns array name for csv data case insensitive
    
    closes #1485
---
 .../easy/text/compliant/RepeatedVarCharOutput.java |  2 +-
 .../drill/exec/store/text/TestTextColumn.java      | 23 +++++++++++++++++++---
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/compliant/RepeatedVarCharOutput.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/compliant/RepeatedVarCharOutput.java
index 57e26f2..05f0773 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/compliant/RepeatedVarCharOutput.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/compliant/RepeatedVarCharOutput.java
@@ -133,7 +133,7 @@ class RepeatedVarCharOutput extends TextOutput {
         for (SchemaPath path : columns) {
           assert path.getRootSegment().isNamed() : "root segment should be named";
           pathStr = path.getRootSegment().getPath();
-          Preconditions.checkArgument(COL_NAME.equals(pathStr) || (SchemaPath.DYNAMIC_STAR.equals(pathStr) && path.getRootSegment().getChild() == null),
+          Preconditions.checkArgument(COL_NAME.equalsIgnoreCase(pathStr) || (SchemaPath.DYNAMIC_STAR.equals(pathStr) && path.getRootSegment().getChild() == null),
               String.format("Selected column '%s' must have name 'columns' or must be plain '*'", pathStr));
 
           if (path.getRootSegment().getChild() != null) {
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestTextColumn.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestTextColumn.java
index 8dd122b..2b96924 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestTextColumn.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/text/TestTextColumn.java
@@ -22,7 +22,8 @@ import java.util.List;
 import org.apache.drill.test.BaseTestQuery;
 import org.apache.drill.exec.rpc.user.QueryDataBatch;
 import org.junit.Test;
-import static org.junit.Assert.assertTrue;
+
+import static org.junit.Assert.assertEquals;
 
 public class TestTextColumn extends BaseTestQuery {
   @Test
@@ -41,7 +42,7 @@ public class TestTextColumn extends BaseTestQuery {
     expectedResultSet.addRow("g, h,\",\"i\",\"j,, \\n k");
 
     TestResultSet actualResultSet = new TestResultSet(actualResults);
-    assertTrue(expectedResultSet.equals(actualResultSet));
+    assertEquals(expectedResultSet, actualResultSet);
   }
 
   @Test
@@ -55,6 +56,22 @@ public class TestTextColumn extends BaseTestQuery {
     expectedResultSet.addRow("g, h,", "i", "j,, \\n k", "l\\\"m");
 
     TestResultSet actualResultSet = new TestResultSet(actualResults);
-    assertTrue(expectedResultSet.equals(actualResultSet));
+    assertEquals(expectedResultSet, actualResultSet);
+  }
+
+  @Test
+  public void testColumnsCaseInsensitive() throws Exception {
+    testBuilder()
+        .sqlQuery("select columns as c from cp.`store/text/data/letters.csv`")
+        .unOrdered()
+        .sqlBaselineQuery("select COLUMNS as c from cp.`store/text/data/letters.csv`")
+        .go();
+
+    testBuilder()
+        .sqlQuery("select columns[0], columns[1] from cp.`store/text/data/letters.csv`")
+        .unOrdered()
+        .sqlBaselineQuery("select COLUMNS[0], CoLuMnS[1] from cp.`store/text/data/letters.csv`")
+        .go();
   }
+
 }