aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorVolodymyr Vysotskyi <vvovyk@gmail.com>2018-12-20 14:22:21 +0200
committerVitalii Diravka <vitalii.diravka@gmail.com>2018-12-20 19:53:41 +0200
commit6a9465ab8238ced53f4b899b54e4ea22e3e86f11 (patch)
tree4d0bfae7871d13c300fbed2d7d3389cf97287c6c /contrib
parent5af61ce48594fbbe6ad8ab9c7c54212a05ba623a (diff)
DRILL-6915: Disable generation of test tables with case-sensitive names for non-Linux systems
closes #1580
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/storage-jdbc/pom.xml36
-rw-r--r--contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java6
-rwxr-xr-xcontrib/storage-jdbc/src/test/resources/bootstrap-storage-plugins.json4
-rw-r--r--contrib/storage-jdbc/src/test/resources/mysql-test-data-linux.sql10
-rw-r--r--contrib/storage-jdbc/src/test/resources/mysql-test-data.sql7
5 files changed, 51 insertions, 12 deletions
diff --git a/contrib/storage-jdbc/pom.xml b/contrib/storage-jdbc/pom.xml
index 495f1c86a..f36149f64 100755
--- a/contrib/storage-jdbc/pom.xml
+++ b/contrib/storage-jdbc/pom.xml
@@ -34,6 +34,7 @@
<mysql.connector.version>8.0.13</mysql.connector.version>
<derby.database.name>drill_derby_test</derby.database.name>
<mysql.database.name>drill_mysql_test</mysql.database.name>
+ <mysql.scriptFile.name>mysql-test-data.sql</mysql.scriptFile.name>
</properties>
<dependencies>
@@ -78,6 +79,21 @@
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>linux</id>
+ <properties>
+ <!-- Reg expr includes both mysql-test-data.sql and mysql-test-data-linux.sql script files -->
+ <mysql.scriptFile.name>mysql-test-data*.sql</mysql.scriptFile.name>
+ </properties>
+ <activation>
+ <os>
+ <family>linux</family>
+ </os>
+ </activation>
+ </profile>
+ </profiles>
+
<build>
<testResources>
<testResource>
@@ -223,6 +239,20 @@
<groupId>com.jcabi</groupId>
<artifactId>jcabi-mysql-maven-plugin</artifactId>
<version>0.9</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>5.0.0.Final</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.3.1</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
<executions>
<execution>
<id>mysql-test</id>
@@ -254,7 +284,7 @@
</dependencies>
<configuration>
<skip>${skipTests}</skip>
- <driver>com.mysql.jdbc.Driver</driver>
+ <driver>com.mysql.cj.jdbc.Driver</driver>
<username>root</username>
<password>root</password>
<url>jdbc:mysql://localhost:${mysql.reserved.port}/${mysql.database.name}</url>
@@ -271,7 +301,7 @@
<fileset>
<basedir>${basedir}/src/test/resources</basedir>
<includes>
- <include>mysql-test-data.sql</include>
+ <include>${mysql.scriptFile.name}</include>
</includes>
</fileset>
</configuration>
@@ -281,4 +311,4 @@
</plugins>
</build>
-</project> \ No newline at end of file
+</project>
diff --git a/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java b/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java
index 361559c93..963d75e7b 100644
--- a/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java
+++ b/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java
@@ -21,6 +21,7 @@ import org.apache.drill.categories.JdbcStorageTest;
import org.apache.drill.exec.expr.fn.impl.DateUtility;
import org.apache.drill.PlanTestBase;
+import org.junit.Assume;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -145,6 +146,11 @@ public class TestJdbcPluginWithMySQLIT extends PlanTestBase {
@Test
public void testCaseSensitiveTableNames() throws Exception {
+ String osName = System.getProperty("os.name").toLowerCase();
+ Assume.assumeTrue(
+ "Skip tests for non-linux systems due to " +
+ "table names case-insensitivity problems on Windows and MacOS",
+ osName.startsWith("linux"));
test("use mysqlCaseInsensitive.`drill_mysql_test`");
// two table names match the filter ignoring the case
assertEquals(2, testSql("show tables like 'caseSensitiveTable'"));
diff --git a/contrib/storage-jdbc/src/test/resources/bootstrap-storage-plugins.json b/contrib/storage-jdbc/src/test/resources/bootstrap-storage-plugins.json
index 945ddeb53..1c2aa3fc6 100755
--- a/contrib/storage-jdbc/src/test/resources/bootstrap-storage-plugins.json
+++ b/contrib/storage-jdbc/src/test/resources/bootstrap-storage-plugins.json
@@ -9,13 +9,13 @@
},
mysql : {
type : "jdbc",
- driver : "com.mysql.jdbc.Driver",
+ driver : "com.mysql.cj.jdbc.Driver",
url : "jdbc:mysql://localhost:${mysql.reserved.port}/${mysql.database.name}?user=root&password=root&useJDBCCompliantTimezoneShift=true",
enabled : true
},
mysqlCaseInsensitive : {
type : "jdbc",
- driver : "com.mysql.jdbc.Driver",
+ driver : "com.mysql.cj.jdbc.Driver",
url : "jdbc:mysql://localhost:${mysql.reserved.port}/${mysql.database.name}?user=root&password=root&useJDBCCompliantTimezoneShift=true",
caseInsensitiveTableNames: true,
enabled : true
diff --git a/contrib/storage-jdbc/src/test/resources/mysql-test-data-linux.sql b/contrib/storage-jdbc/src/test/resources/mysql-test-data-linux.sql
new file mode 100644
index 000000000..e20916697
--- /dev/null
+++ b/contrib/storage-jdbc/src/test/resources/mysql-test-data-linux.sql
@@ -0,0 +1,10 @@
+set global time_zone = "+00:00";
+
+use drill_mysql_test;
+
+create table CASESENSITIVETABLE (
+ a BLOB,
+ b BLOB
+);
+
+insert into CASESENSITIVETABLE (a, b) values ('this is a test', 'for case sensitive table names');
diff --git a/contrib/storage-jdbc/src/test/resources/mysql-test-data.sql b/contrib/storage-jdbc/src/test/resources/mysql-test-data.sql
index 92ad6ff57..0d2ab682c 100644
--- a/contrib/storage-jdbc/src/test/resources/mysql-test-data.sql
+++ b/contrib/storage-jdbc/src/test/resources/mysql-test-data.sql
@@ -9,13 +9,6 @@ create table caseSensitiveTable (
insert into caseSensitiveTable (a) values ('this is a test');
-create table CASESENSITIVETABLE (
- a BLOB,
- b BLOB
-);
-
-insert into CASESENSITIVETABLE (a, b) values ('this is a test', 'for case sensitive table names');
-
create table person (
person_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,