import org.sonar.core.notification.db.NotificationQueueDto;
import org.sonar.core.notification.db.NotificationQueueMapper;
import org.sonar.core.permission.*;
+import org.sonar.core.persistence.dialect.Dialect;
import org.sonar.core.persistence.migration.v44.Migration44Mapper;
import org.sonar.core.persistence.migration.v45.Migration45Mapper;
import org.sonar.core.persistence.migration.v50.Migration50Mapper;
Configuration conf = new Configuration();
conf.setEnvironment(new Environment("production", createTransactionFactory(), database.getDataSource()));
- conf.setDatabaseId(database.getDialect().getId());
conf.setUseGeneratedKeys(true);
conf.setLazyLoadingEnabled(false);
conf.setJdbcTypeForNull(JdbcType.NULL);
- conf.getVariables().setProperty("_true", database.getDialect().getTrueSqlValue());
- conf.getVariables().setProperty("_false", database.getDialect().getFalseSqlValue());
+ Dialect dialect = database.getDialect();
+ conf.setDatabaseId(dialect.getId());
+ conf.getVariables().setProperty("_true", dialect.getTrueSqlValue());
+ conf.getVariables().setProperty("_false", dialect.getFalseSqlValue());
+ conf.getVariables().setProperty("_scrollFetchSize", String.valueOf(dialect.getScrollDefaultFetchSize()));
loadAlias(conf, "ActiveDashboard", ActiveDashboardDto.class);
loadAlias(conf, "Author", AuthorDto.class);
public List<String> getConnectionInitStatements() {
return Collections.emptyList();
}
+
+ @Override
+ public int getScrollDefaultFetchSize() {
+ return 200;
+ }
}
* @since 3.2
*/
String getValidationQuery();
+
+ int getScrollDefaultFetchSize();
}
registerColumnType(Types.BLOB, "blob");
}
}
+
+ @Override
+ public int getScrollDefaultFetchSize() {
+ return Integer.MIN_VALUE;
+ }
}
where i.kee=#{kee}
</select>
- <select id="selectAfterDate" resultType="Issue" fetchSize="200" resultSetType="FORWARD_ONLY">
+ <select id="selectAfterDate" resultType="Issue"
+ fetchSize="${_scrollFetchSize}" resultSetType="FORWARD_ONLY">
select
<include refid="issueColumns"/>
from issues i
public class H2Test {
- private H2 h2 = new H2();
+ H2 dialect = new H2();
@Test
public void matchesJdbcURL() {
- assertThat(h2.matchesJdbcURL("jdbc:h2:foo")).isTrue();
- assertThat(h2.matchesJdbcURL("jdbc:hsql:foo")).isFalse();
+ assertThat(dialect.matchesJdbcURL("jdbc:h2:foo")).isTrue();
+ assertThat(dialect.matchesJdbcURL("jdbc:hsql:foo")).isFalse();
}
@Test
public void testBooleanSqlValues() {
- assertThat(h2.getTrueSqlValue()).isEqualTo("true");
- assertThat(h2.getFalseSqlValue()).isEqualTo("false");
+ assertThat(dialect.getTrueSqlValue()).isEqualTo("true");
+ assertThat(dialect.getFalseSqlValue()).isEqualTo("false");
}
@Test
public void should_configure() {
- assertThat(h2.getId()).isEqualTo("h2");
- assertThat(h2.getActiveRecordDialectCode()).isEqualTo(".h2.");
- assertThat(h2.getDefaultDriverClassName()).isEqualTo("org.h2.Driver");
- assertThat(h2.getValidationQuery()).isEqualTo("SELECT 1");
+ assertThat(dialect.getId()).isEqualTo("h2");
+ assertThat(dialect.getActiveRecordDialectCode()).isEqualTo(".h2.");
+ assertThat(dialect.getDefaultDriverClassName()).isEqualTo("org.h2.Driver");
+ assertThat(dialect.getValidationQuery()).isEqualTo("SELECT 1");
+ }
+
+ @Test
+ public void testFetchSizeForScrolling() throws Exception {
+ assertThat(dialect.getScrollDefaultFetchSize()).isEqualTo(200);
}
}
assertThat(mySql.getDefaultDriverClassName()).isEqualTo("com.mysql.jdbc.Driver");
assertThat(mySql.getValidationQuery()).isEqualTo("SELECT 1");
}
+
+ @Test
+ public void testFetchSizeForScrolling() throws Exception {
+ assertThat(mySql.getScrollDefaultFetchSize()).isEqualTo(Integer.MIN_VALUE);
+ }
}
public class OracleTest {
- private Oracle oracle = new Oracle();
+ Oracle dialect = new Oracle();
@Test
public void matchesJdbcURL() {
- assertThat(oracle.matchesJdbcURL("jdbc:oracle:thin:@localhost/XE")).isTrue();
- assertThat(oracle.matchesJdbcURL("jdbc:hsql:foo")).isFalse();
+ assertThat(dialect.matchesJdbcURL("jdbc:oracle:thin:@localhost/XE")).isTrue();
+ assertThat(dialect.matchesJdbcURL("jdbc:hsql:foo")).isFalse();
}
@Test
public void testBooleanSqlValues() {
- assertThat(oracle.getTrueSqlValue()).isEqualTo("1");
- assertThat(oracle.getFalseSqlValue()).isEqualTo("0");
+ assertThat(dialect.getTrueSqlValue()).isEqualTo("1");
+ assertThat(dialect.getFalseSqlValue()).isEqualTo("0");
}
@Test
public void should_configure() {
- assertThat(oracle.getId()).isEqualTo("oracle");
- assertThat(oracle.getActiveRecordDialectCode()).isEqualTo("oracle");
- assertThat(oracle.getDefaultDriverClassName()).isEqualTo("oracle.jdbc.OracleDriver");
- assertThat(oracle.getValidationQuery()).isEqualTo("SELECT 1 FROM DUAL");
+ assertThat(dialect.getId()).isEqualTo("oracle");
+ assertThat(dialect.getActiveRecordDialectCode()).isEqualTo("oracle");
+ assertThat(dialect.getDefaultDriverClassName()).isEqualTo("oracle.jdbc.OracleDriver");
+ assertThat(dialect.getValidationQuery()).isEqualTo("SELECT 1 FROM DUAL");
+ }
+
+ @Test
+ public void testFetchSizeForScrolling() throws Exception {
+ assertThat(dialect.getScrollDefaultFetchSize()).isEqualTo(200);
}
}
public class PostgreSqlTest {
- private PostgreSql postgreSql = new PostgreSql();
+ PostgreSql dialect = new PostgreSql();
@Test
public void matchesJdbcURL() {
- assertThat(postgreSql.matchesJdbcURL("jdbc:postgresql://localhost/sonar")).isTrue();
- assertThat(postgreSql.matchesJdbcURL("jdbc:hsql:foo")).isFalse();
+ assertThat(dialect.matchesJdbcURL("jdbc:postgresql://localhost/sonar")).isTrue();
+ assertThat(dialect.matchesJdbcURL("jdbc:hsql:foo")).isFalse();
}
@Test
public void should_set_connection_properties() {
- assertThat(postgreSql.getConnectionInitStatements()).isEqualTo(PostgreSql.INIT_STATEMENTS);
+ assertThat(dialect.getConnectionInitStatements()).isEqualTo(PostgreSql.INIT_STATEMENTS);
}
@Test
public void testBooleanSqlValues() {
- assertThat(postgreSql.getTrueSqlValue()).isEqualTo("true");
- assertThat(postgreSql.getFalseSqlValue()).isEqualTo("false");
+ assertThat(dialect.getTrueSqlValue()).isEqualTo("true");
+ assertThat(dialect.getFalseSqlValue()).isEqualTo("false");
}
@Test
public void should_configure() {
- assertThat(postgreSql.getId()).isEqualTo("postgresql");
- assertThat(postgreSql.getActiveRecordDialectCode()).isEqualTo("postgre");
- assertThat(postgreSql.getDefaultDriverClassName()).isEqualTo("org.postgresql.Driver");
- assertThat(postgreSql.getValidationQuery()).isEqualTo("SELECT 1");
+ assertThat(dialect.getId()).isEqualTo("postgresql");
+ assertThat(dialect.getActiveRecordDialectCode()).isEqualTo("postgre");
+ assertThat(dialect.getDefaultDriverClassName()).isEqualTo("org.postgresql.Driver");
+ assertThat(dialect.getValidationQuery()).isEqualTo("SELECT 1");
+ }
+
+ @Test
+ public void testFetchSizeForScrolling() throws Exception {
+ assertThat(dialect.getScrollDefaultFetchSize()).isEqualTo(200);
}
}