Merge pull request #1697 from ebean-orm/feature/1695-binary

#1695 - For MySql like remove the binary keyword + Add caseSensitiveCollation configuration option
This commit is contained in:
Rob Bygrave
2019-05-16 19:46:38 +12:00
committed by GitHub
27 changed files with 243 additions and 91 deletions
+4
View File
@@ -126,6 +126,10 @@ public abstract class BaseTestCase {
return sql;
}
public boolean isPlatformCaseSensitive() {
return spiEbeanServer().getDatabasePlatform().isCaseSensitiveCollation();
}
/**
* MS SQL Server does not allow setting explicit values on identity columns
* so tests that do this need to be skipped for SQL Server.
@@ -132,10 +132,13 @@ public class EbeanServer_eqlTest extends BaseTestCase {
Query<Customer> query = Ebean.createQuery(Customer.class);
query.setMaxRows(10);
query.setFirstRow(3);
if (isSqlServer()) {
query.orderBy("id");
}
query.findList();
if (isSqlServer()) {
assertThat(query.getGeneratedSql()).endsWith("from o_customer t0 offset 3 rows fetch next 10 rows only");
assertThat(query.getGeneratedSql()).endsWith("from o_customer t0 order by t0.id offset 3 rows fetch next 10 rows only");
} else if (isOracle()) {
assertThat(query.getGeneratedSql()).contains("where rownum <= 13");
assertThat(query.getGeneratedSql()).contains("where rn_ > 3");
@@ -70,6 +70,7 @@ public class ServerConfigTest {
props.setProperty("namingConvention", "io.ebean.config.MatchingNamingConvention");
props.setProperty("idGeneratorAutomatic", "true");
props.setProperty("enabledL2Regions", "r0,users,orgs");
props.setProperty("caseSensitiveCollation", "false");
serverConfig.loadFromProperties(props);
@@ -79,6 +80,7 @@ public class ServerConfigTest {
assertTrue(serverConfig.isDbOffline());
assertTrue(serverConfig.isAutoReadOnlyDataSource());
assertTrue(serverConfig.isIdGeneratorAutomatic());
assertFalse(serverConfig.getPlatformConfig().isCaseSensitiveCollation());
assertThat(serverConfig.getNamingConvention()).isInstanceOf(MatchingNamingConvention.class);
@@ -131,6 +133,7 @@ public class ServerConfigTest {
assertFalse(serverConfig.isIdGeneratorAutomatic());
assertEquals(JsonConfig.DateTime.ISO8601, serverConfig.getJsonDateTime());
assertEquals(JsonConfig.Date.ISO8601, serverConfig.getJsonDate());
assertTrue(serverConfig.getPlatformConfig().isCaseSensitiveCollation());
}
@Test
@@ -596,7 +596,7 @@ public class EqlParserTest extends BaseTestCase {
ResetBasicData.reset();
Query<Customer> query = parse("limit 10 offset 5");
Query<Customer> query = parse("order by name limit 10 offset 5");
query.findList();
if (isH2()) {
assertThat(query.getGeneratedSql()).contains(" limit 10 offset 5");