diff options
author | Volodymyr Vysotskyi <vvovyk@gmail.com> | 2018-12-20 14:22:21 +0200 |
---|---|---|
committer | Vitalii Diravka <vitalii.diravka@gmail.com> | 2018-12-20 19:53:41 +0200 |
commit | 6a9465ab8238ced53f4b899b54e4ea22e3e86f11 (patch) | |
tree | 4d0bfae7871d13c300fbed2d7d3389cf97287c6c /contrib | |
parent | 5af61ce48594fbbe6ad8ab9c7c54212a05ba623a (diff) |
DRILL-6915: Disable generation of test tables with case-sensitive names for non-Linux systems
closes #1580
Diffstat (limited to 'contrib')
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, |