提交 5c555202 authored 作者: Thomas Mueller Graf's avatar Thomas Mueller Graf

Formatting, Javadocs

上级 986af2a3
......@@ -144,6 +144,7 @@ public class Driver implements java.sql.Driver {
* [Not supported]
*/
/*## Java 1.7 ##
@Override
public Logger getParentLogger() {
return null;
}
......
......@@ -1913,7 +1913,7 @@ public class Parser {
}
}
private static int compareTableFilters(TableFilter o1, TableFilter o2) {
static int compareTableFilters(TableFilter o1, TableFilter o2) {
assert o1.getOrderInFrom() != o2.getOrderInFrom();
return o1.getOrderInFrom() > o2.getOrderInFrom() ? 1 : -1;
}
......
......@@ -9,7 +9,6 @@ import org.h2.command.dml.Query;
import org.h2.engine.Session;
import org.h2.result.LocalResult;
import org.h2.table.ColumnResolver;
import org.h2.table.SubQueryInfo;
import org.h2.table.TableFilter;
import org.h2.util.StringUtils;
import org.h2.value.Value;
......
......@@ -13,7 +13,6 @@ import org.h2.index.IndexCondition;
import org.h2.message.DbException;
import org.h2.result.LocalResult;
import org.h2.table.ColumnResolver;
import org.h2.table.SubQueryInfo;
import org.h2.table.TableFilter;
import org.h2.util.StringUtils;
import org.h2.value.Value;
......
......@@ -12,7 +12,6 @@ import org.h2.engine.Session;
import org.h2.message.DbException;
import org.h2.result.ResultInterface;
import org.h2.table.ColumnResolver;
import org.h2.table.SubQueryInfo;
import org.h2.table.TableFilter;
import org.h2.value.Value;
import org.h2.value.ValueArray;
......
......@@ -14,39 +14,39 @@ import org.h2.result.SearchRow;
* H2 engine will be calling {@link #addSearchRows(SearchRow, SearchRow)} until
* method {@link #isBatchFull()}} will return {@code true} or there are no more
* search rows to add. Then method {@link #find()} will be called to execute batched lookup.
* Note that a single instance of {@link IndexLookupBatch} can be reused for multiple
* Note that a single instance of {@link IndexLookupBatch} can be reused for multiple
* sequential batched lookups, moreover it can be reused for multiple queries for
* the same prepared statement.
*
*
* @see Index#createLookupBatch(org.h2.table.TableFilter)
* @author Sergi Vladykin
*/
public interface IndexLookupBatch {
/**
* Add search row pair to the batch.
*
*
* @param first the first row, or null for no limit
* @param last the last row, or null for no limit
* @return {@code false} if this search row pair is known to produce no results
* and thus the given row pair was not added
* @see Index#find(TableFilter, SearchRow, SearchRow)
* @see Index#find(org.h2.table.TableFilter, SearchRow, SearchRow)
*/
boolean addSearchRows(SearchRow first, SearchRow last);
/**
* Check if this batch is full.
*
* @return {@code true} If batch is full, will not accept any
*
* @return {@code true} If batch is full, will not accept any
* more rows and {@link #find()} can be executed.
*/
boolean isBatchFull();
/**
* Execute batched lookup and return future cursor for each provided
* search row pair. Note that this method must return exactly the same number
* of future cursors in result list as number of {@link #addSearchRows(SearchRow, SearchRow)}
* calls has been done before {@link #find()} call exactly in the same order.
*
* of future cursors in result list as number of {@link #addSearchRows(SearchRow, SearchRow)}
* calls has been done before {@link #find()} call exactly in the same order.
*
* @return List of future cursors for collected search rows.
*/
List<Future<Cursor>> find();
......
......@@ -69,7 +69,7 @@ public class ViewIndex extends BaseIndex implements SpatialIndex {
columns = new Column[0];
this.createSession = null;
this.indexMasks = null;
// this is a main index of TableView, it does not need eviction time stamp
// this is a main index of TableView, it does not need eviction time stamp
evaluatedAt = Long.MIN_VALUE;
}
......@@ -171,8 +171,7 @@ public class ViewIndex extends BaseIndex implements SpatialIndex {
return (Query) p;
}
private Cursor findRecursive(Session session, SearchRow first, SearchRow last,
SearchRow intersection) {
private Cursor findRecursive(SearchRow first, SearchRow last) {
assert recursive;
LocalResult recResult = view.getRecursiveResult();
if (recResult != null) {
......@@ -266,7 +265,7 @@ public class ViewIndex extends BaseIndex implements SpatialIndex {
private Cursor find(Session session, SearchRow first, SearchRow last,
SearchRow intersection) {
if (recursive) {
return findRecursive(session, first, last, intersection);
return findRecursive(first, last);
}
setupQueryParameters(session, first, last, intersection);
LocalResult result = query.query(0);
......
......@@ -25,7 +25,7 @@ public abstract class RowFactory {
/**
* Default implementation of row factory.
*/
private static final class DefaultRowFactory extends RowFactory {
static final class DefaultRowFactory extends RowFactory {
@Override
public Row createRow(Value[] data, int memory) {
return new RowImpl(data, memory);
......
......@@ -33,6 +33,7 @@ public class RowImpl extends Row {
*
* @return a new row with the same data
*/
@Override
public Row getCopy() {
Value[] d2 = new Value[data.length];
System.arraycopy(data, 0, d2, 0, data.length);
......@@ -54,6 +55,7 @@ public class RowImpl extends Row {
return version;
}
@Override
public void setVersion(int version) {
this.version = version;
}
......@@ -79,6 +81,7 @@ public class RowImpl extends Row {
* @param dummy the template buffer
* @return the number of bytes
*/
@Override
public int getByteCount(Data dummy) {
int size = 0;
for (Value v : data) {
......@@ -96,6 +99,7 @@ public class RowImpl extends Row {
}
}
@Override
public boolean isEmpty() {
return data == null;
}
......@@ -145,14 +149,17 @@ public class RowImpl extends Row {
return buff.append(')').toString();
}
@Override
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
@Override
public void setSessionId(int sessionId) {
this.sessionId = sessionId;
}
@Override
public int getSessionId() {
return sessionId;
}
......@@ -160,14 +167,17 @@ public class RowImpl extends Row {
/**
* This record has been committed. The session id is reset.
*/
@Override
public void commit() {
this.sessionId = 0;
}
@Override
public boolean isDeleted() {
return deleted;
}
@Override
public Value[] getValueList() {
return data;
}
......
......@@ -240,6 +240,16 @@ public abstract class Table extends SchemaObjectBase {
*/
public abstract Index getScanIndex(Session session);
/**
* Get the scan index for this table.
*
* @param session the session
* @param masks the search mask
* @param filters the table filters
* @param filter the filer index
* @param sortOrder the sort order
* @return the scan index
*/
public Index getScanIndex(Session session, int[] masks,
TableFilter[] filters, int filter, SortOrder sortOrder) {
return getScanIndex(session);
......@@ -699,7 +709,7 @@ public abstract class Table extends SchemaObjectBase {
item.cost = item.getIndex().getCost(session, null, filters, filter, null);
Trace t = session.getTrace();
if (t.isDebugEnabled()) {
t.debug("Table : potential plan item cost {0} index {1}",
t.debug("Table : potential plan item cost {0} index {1}",
item.cost, item.getIndex().getPlanSQL());
}
ArrayList<Index> indexes = getIndexes();
......@@ -708,7 +718,7 @@ public abstract class Table extends SchemaObjectBase {
Index index = indexes.get(i);
double cost = index.getCost(session, masks, filters, filter, sortOrder);
if (t.isDebugEnabled()) {
t.debug("Table : potential plan item cost {0} index {1}",
t.debug("Table : potential plan item cost {0} index {1}",
cost, index.getPlanSQL());
}
if (cost < item.cost) {
......
......@@ -21,7 +21,6 @@ import org.h2.index.Index;
import org.h2.index.IndexCondition;
import org.h2.index.IndexCursor;
import org.h2.index.IndexLookupBatch;
import org.h2.index.ScanIndex;
import org.h2.index.ViewIndex;
import org.h2.message.DbException;
import org.h2.result.Row;
......@@ -213,9 +212,9 @@ public class TableFilter implements ColumnResolver {
item.cost -= item.cost * indexConditions.size() / 100 / (filter + 1);
if (item1 != null && item1.cost < item.cost) {
item = item1;
item = item1;
}
if (nestedJoin != null) {
setEvaluatable(nestedJoin);
item.setNestedJoinPlan(nestedJoin.getBestPlanItem(s, filters, filter));
......@@ -374,7 +373,6 @@ public class TableFilter implements ColumnResolver {
/**
* Attempt to initialize batched join.
*
* @param id join filter id (index of this table filter in join list)
* @param jb join batch if it is already created
* @return join batch if query runs over index which supports batched lookups, {@code null} otherwise
*/
......
......@@ -366,7 +366,7 @@ public class SourceCompiler {
boolean syntaxError = false;
final BufferedReader reader = new BufferedReader(new StringReader(output));
try {
for (String line; (line = reader.readLine()) != null; ) {
for (String line; (line = reader.readLine()) != null;) {
if (line.startsWith("Note:") || line.startsWith("warning:")) {
// just a warning (e.g. unchecked or unsafe operations)
} else {
......
/*
* Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.test.ap;
import java.util.ArrayList;
......@@ -11,10 +16,14 @@ import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import javax.tools.Diagnostic;
/**
* An annotation processor for testing.
*/
public class TestAnnotationProcessor extends AbstractProcessor {
public static final String MESSAGES_KEY = TestAnnotationProcessor.class.getName() + "-messages";
@Override
public Set<String> getSupportedAnnotationTypes() {
for (OutputMessage outputMessage : findMessages()) {
......@@ -24,26 +33,26 @@ public class TestAnnotationProcessor extends AbstractProcessor {
return Collections.emptySet();
}
private List<OutputMessage> findMessages() {
private static List<OutputMessage> findMessages() {
final String messagesStr = System.getProperty(MESSAGES_KEY);
if (messagesStr == null || messagesStr.isEmpty()) {
return Collections.emptyList();
} else {
final List<OutputMessage> outputMessages = new ArrayList<OutputMessage>();
}
List<OutputMessage> outputMessages = new ArrayList<OutputMessage>();
for (String msg : messagesStr.split("\\|")) {
final String[] split = msg.split(",");
if (split.length == 2) {
outputMessages.add(new OutputMessage(Diagnostic.Kind.valueOf(split[0]), split[1]));
} else {
throw new IllegalStateException("Unable to parse messages definition for: '" + messagesStr + "'");
}
for (String msg : messagesStr.split("\\|")) {
String[] split = msg.split(",");
if (split.length == 2) {
outputMessages.add(new OutputMessage(Diagnostic.Kind.valueOf(split[0]), split[1]));
} else {
throw new IllegalStateException("Unable to parse messages definition for: '" + messagesStr + "'");
}
return outputMessages;
}
return outputMessages;
}
@Override
public SourceVersion getSupportedSourceVersion() {
return SourceVersion.latest();
}
......@@ -53,11 +62,14 @@ public class TestAnnotationProcessor extends AbstractProcessor {
return false;
}
/**
* An output message.
*/
private static class OutputMessage {
public final Diagnostic.Kind kind;
public final String message;
private OutputMessage(Diagnostic.Kind kind, String message) {
OutputMessage(Diagnostic.Kind kind, String message) {
this.kind = kind;
this.message = message;
}
......
......@@ -33,7 +33,7 @@ public class TestRowFactory extends TestBase {
@Override
public void test() throws Exception {
deleteDb("rowFactory");
Connection conn = getConnection("rowFactory;ROW_FACTORY=\"" +
Connection conn = getConnection("rowFactory;ROW_FACTORY=\"" +
MyTestRowFactory.class.getName() + '"');
Statement stat = conn.createStatement();
stat.execute("create table t1(id int, name varchar)");
......@@ -49,7 +49,7 @@ public class TestRowFactory extends TestBase {
*/
public static class MyTestRowFactory extends RowFactory {
private static final AtomicInteger COUNTER = new AtomicInteger();
static final AtomicInteger COUNTER = new AtomicInteger();
@Override
public Row createRow(Value[] data, int memory) {
......
......@@ -71,6 +71,7 @@ public class TestMvcc4 extends TestBase {
final Thread mainThread = Thread.currentThread();
final CountDownLatch executedUpdate = new CountDownLatch(1);
new Thread() {
@Override
public void run() {
try {
Connection c2 = getConnection("mvcc4");
......@@ -96,6 +97,7 @@ public class TestMvcc4 extends TestBase {
try {
executedUpdate.await();
} catch (InterruptedException e) {
// ignore
}
// Execute an update. This should initially fail, and enter the waiting
......@@ -120,7 +122,7 @@ public class TestMvcc4 extends TestBase {
setup.close();
}
private static void waitForThreadToBlockOnDB(Thread t) {
static void waitForThreadToBlockOnDB(Thread t) {
while (true) {
// TODO must not use getAllStackTraces, as the method names are
// implementation details
......@@ -135,6 +137,7 @@ public class TestMvcc4 extends TestBase {
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// ignore
}
}
}
......
......@@ -315,9 +315,8 @@ public class BuildBase {
newArgs.add(script);
newArgs.addAll(args);
return exec("cmd", newArgs);
} else {
return exec(script, args);
}
return exec(script, args);
}
/**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论