Unverified 提交 d4891863 authored 作者: Noel Grandin's avatar Noel Grandin 提交者: GitHub

Merge pull request #908 from grandinj/master

remove dead code
......@@ -124,7 +124,7 @@ public class Session extends SessionWithState {
private long modificationMetaID = -1;
private SubQueryInfo subQueryInfo;
private int parsingView;
private Deque<String> viewNameStack = new ArrayDeque<>();
private final Deque<String> viewNameStack = new ArrayDeque<>();
private int preparingQueryExpression;
private volatile SmallLRUCache<Object, ViewIndex> viewIndexCache;
private HashMap<Object, ViewIndex> subQueryIndexCache;
......
......@@ -56,13 +56,6 @@ public class SysProperties {
public static final String FILE_SEPARATOR =
Utils.getProperty("file.separator", "/");
/**
* System property <code>java.specification.version</code>.<br />
* It is set by the system. Examples: 0.9 (on Android), 1.7, 1.8, 9, 10.
*/
public static final String JAVA_SPECIFICATION_VERSION =
Utils.getProperty("java.specification.version", "1.7");
/**
* System property <code>line.separator</code> (default: \n).<br />
* It is usually set by the system, and used by the script and trace tools.
......
......@@ -29,7 +29,6 @@ import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.h2.api.ErrorCode;
import org.h2.api.TimestampWithTimeZone;
import org.h2.command.CommandInterface;
......@@ -91,7 +90,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet, JdbcResultS
private HashMap<String, Integer> columnLabelMap;
private HashMap<Integer, Value[]> patchedRows;
private JdbcPreparedStatement preparedStatement;
private CommandInterface command;
private final CommandInterface command;
JdbcResultSet(JdbcConnection conn, JdbcStatement stat, CommandInterface command,
ResultInterface result, int id, boolean closeStatement,
......@@ -101,7 +100,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet, JdbcResultS
this.stat = stat;
this.command = command;
this.result = result;
columnCount = result.getVisibleColumnCount();
this.columnCount = result.getVisibleColumnCount();
this.closeStatement = closeStatement;
this.scrollable = scrollable;
this.updatable = updatable;
......
......@@ -237,7 +237,7 @@ public final class MVStore {
* are counted.
*/
private int unsavedMemory;
private int autoCommitMemory;
private final int autoCommitMemory;
private boolean saveNeeded;
/**
......@@ -274,7 +274,7 @@ public final class MVStore {
*/
private int autoCommitDelay;
private int autoCompactFillRate;
private final int autoCompactFillRate;
private long autoCompactLastFileOpCount;
private final Object compactSync = new Object();
......@@ -376,6 +376,9 @@ public final class MVStore {
// the parameter is different from the old value
int delay = DataUtils.getConfigParam(config, "autoCommitDelay", 1000);
setAutoCommitDelay(delay);
} else {
autoCommitMemory = 0;
autoCompactFillRate = 0;
}
}
......
......@@ -118,7 +118,7 @@ public class MVTable extends TableBase {
private final Trace traceLock;
private int changesSinceAnalyze;
private int nextAnalyze;
private boolean containsLargeObject;
private final boolean containsLargeObject;
private Column rowIdColumn;
private final MVTableEngine.Store store;
......@@ -130,11 +130,14 @@ public class MVTable extends TableBase {
this.store = store;
this.transactionStore = store.getTransactionStore();
this.isHidden = data.isHidden;
boolean b = false;
for (Column col : getColumns()) {
if (DataType.isLargeObject(col.getType())) {
containsLargeObject = true;
b = true;
break;
}
}
containsLargeObject = b;
traceLock = database.getTrace(Trace.LOCK);
}
......
......@@ -468,7 +468,7 @@ public class TransactionStore {
* End this transaction
*
* @param t the transaction
* @param previous status of this transaction
* @param oldStatus status of this transaction
*/
synchronized void endTransaction(Transaction t, int oldStatus) {
if (oldStatus == Transaction.STATUS_PREPARED) {
......
......@@ -31,16 +31,16 @@ public class ResultTempTable implements ResultExternal {
private final boolean distinct;
private final SortOrder sort;
private Index index;
private Session session;
private final Session session;
private Table table;
private Cursor resultCursor;
private int rowCount;
private int columnCount;
private final int columnCount;
private final ResultTempTable parent;
private boolean closed;
private int childCount;
private boolean containsLob;
private final boolean containsLob;
ResultTempTable(Session session, Expression[] expressions, boolean distinct, SortOrder sort) {
this.session = session;
......@@ -49,15 +49,17 @@ public class ResultTempTable implements ResultExternal {
this.columnCount = expressions.length;
Schema schema = session.getDatabase().getSchema(Constants.SCHEMA_MAIN);
CreateTableData data = new CreateTableData();
boolean b = false;
for (int i = 0; i < expressions.length; i++) {
int type = expressions[i].getType();
Column col = new Column(COLUMN_NAME + i,
type);
if (type == Value.CLOB || type == Value.BLOB) {
containsLob = true;
b = true;
}
data.columns.add(col);
}
containsLob = b;
data.id = session.getDatabase().allocateObjectId();
data.tableName = "TEMP_RESULT_SET_" + data.id;
data.temporary = true;
......
......@@ -10,7 +10,6 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import org.h2.api.ErrorCode;
import org.h2.jdbc.JdbcConnection;
import org.h2.message.DbException;
......
......@@ -64,7 +64,7 @@ public class RegularTable extends TableBase {
private final Trace traceLock;
private final ArrayList<Index> indexes = New.arrayList();
private long lastModificationId;
private boolean containsLargeObject;
private final boolean containsLargeObject;
private final PageDataIndex mainIndex;
private int changesSinceAnalyze;
private int nextAnalyze;
......@@ -74,11 +74,14 @@ public class RegularTable extends TableBase {
super(data);
nextAnalyze = database.getSettings().analyzeAuto;
this.isHidden = data.isHidden;
boolean b = false;
for (Column col : getColumns()) {
if (DataType.isLargeObject(col.getType())) {
containsLargeObject = true;
b = true;
break;
}
}
containsLargeObject = b;
if (data.persistData && database.isPersistent()) {
mainIndex = new PageDataIndex(this, data.id,
IndexColumn.wrap(getColumns()),
......
......@@ -5,7 +5,7 @@
*/
package org.h2.table;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.h2.command.ddl.CreateTableData;
import org.h2.engine.Database;
......@@ -27,7 +27,7 @@ public abstract class TableBase extends Table {
*/
private final String tableEngine;
/** Provided table parameters */
private List<String> tableEngineParams = new ArrayList<>();
private final List<String> tableEngineParams;
private final boolean globalTemporary;
......@@ -38,6 +38,8 @@ public abstract class TableBase extends Table {
this.globalTemporary = data.globalTemporary;
if (data.tableEngineParams != null) {
this.tableEngineParams = data.tableEngineParams;
} else {
this.tableEngineParams = Collections.EMPTY_LIST;
}
setTemporary(data.temporary);
Column[] cols = data.columns.toArray(new Column[0]);
......
......@@ -6,7 +6,6 @@
package org.h2.util;
import static java.lang.String.format;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
......@@ -113,11 +112,6 @@ class ToDateTokenizer {
*/
static final InlineParslet PARSLET_INLINE = new InlineParslet();
/**
* The number of milliseconds in a day.
*/
static final int MILLIS_IN_HOUR = 60 * 60 * 1000;
/**
* Interface of the classes that can parse a specialized small bit of the
* TO_DATE format-string.
......
......@@ -37,7 +37,6 @@ import org.h2.message.DbException;
import org.h2.tools.SimpleResultSet;
import org.h2.util.JdbcUtils;
import org.h2.util.LocalDateTimeUtils;
import org.h2.util.New;
import org.h2.util.Utils;
/**
......@@ -85,11 +84,6 @@ public class DataType {
*/
public int sqlType;
/**
* The Java class name.
*/
public String jdbc;
/**
* How closely the data type maps to the corresponding JDBC SQL type (low is
* best).
......@@ -188,75 +182,75 @@ public class DataType {
}
static {
add(Value.NULL, Types.NULL, "Null",
add(Value.NULL, Types.NULL,
new DataType(),
new String[]{"NULL"},
// the value is always in the cache
0
);
add(Value.STRING, Types.VARCHAR, "String",
add(Value.STRING, Types.VARCHAR,
createString(true),
new String[]{"VARCHAR", "VARCHAR2", "NVARCHAR", "NVARCHAR2",
"VARCHAR_CASESENSITIVE", "CHARACTER VARYING", "TID"},
// 24 for ValueString, 24 for String
48
);
add(Value.STRING, Types.LONGVARCHAR, "String",
add(Value.STRING, Types.LONGVARCHAR,
createString(true),
new String[]{"LONGVARCHAR", "LONGNVARCHAR"},
48
);
add(Value.STRING_FIXED, Types.CHAR, "String",
add(Value.STRING_FIXED, Types.CHAR,
createString(true),
new String[]{"CHAR", "CHARACTER", "NCHAR"},
48
);
add(Value.STRING_IGNORECASE, Types.VARCHAR, "String",
add(Value.STRING_IGNORECASE, Types.VARCHAR,
createString(false),
new String[]{"VARCHAR_IGNORECASE"},
48
);
add(Value.BOOLEAN, Types.BOOLEAN, "Boolean",
add(Value.BOOLEAN, Types.BOOLEAN,
createDecimal(ValueBoolean.PRECISION, ValueBoolean.PRECISION,
0, ValueBoolean.DISPLAY_SIZE, false, false),
new String[]{"BOOLEAN", "BIT", "BOOL"},
// the value is always in the cache
0
);
add(Value.BYTE, Types.TINYINT, "Byte",
add(Value.BYTE, Types.TINYINT,
createDecimal(ValueByte.PRECISION, ValueByte.PRECISION, 0,
ValueByte.DISPLAY_SIZE, false, false),
new String[]{"TINYINT"},
// the value is almost always in the cache
1
);
add(Value.SHORT, Types.SMALLINT, "Short",
add(Value.SHORT, Types.SMALLINT,
createDecimal(ValueShort.PRECISION, ValueShort.PRECISION, 0,
ValueShort.DISPLAY_SIZE, false, false),
new String[]{"SMALLINT", "YEAR", "INT2"},
// in many cases the value is in the cache
20
);
add(Value.INT, Types.INTEGER, "Int",
add(Value.INT, Types.INTEGER,
createDecimal(ValueInt.PRECISION, ValueInt.PRECISION, 0,
ValueInt.DISPLAY_SIZE, false, false),
new String[]{"INTEGER", "INT", "MEDIUMINT", "INT4", "SIGNED"},
// in many cases the value is in the cache
20
);
add(Value.INT, Types.INTEGER, "Int",
add(Value.INT, Types.INTEGER,
createDecimal(ValueInt.PRECISION, ValueInt.PRECISION, 0,
ValueInt.DISPLAY_SIZE, false, true),
new String[]{"SERIAL"},
20
);
add(Value.LONG, Types.BIGINT, "Long",
add(Value.LONG, Types.BIGINT,
createDecimal(ValueLong.PRECISION, ValueLong.PRECISION, 0,
ValueLong.DISPLAY_SIZE, false, false),
new String[]{"BIGINT", "INT8", "LONG"},
24
);
add(Value.LONG, Types.BIGINT, "Long",
add(Value.LONG, Types.BIGINT,
createDecimal(ValueLong.PRECISION, ValueLong.PRECISION, 0,
ValueLong.DISPLAY_SIZE, false, true),
new String[]{"IDENTITY", "BIGSERIAL"},
......@@ -269,37 +263,37 @@ public class DataType {
addNumeric();
addDecimal();
}
add(Value.FLOAT, Types.REAL, "Float",
add(Value.FLOAT, Types.REAL,
createDecimal(ValueFloat.PRECISION, ValueFloat.PRECISION,
0, ValueFloat.DISPLAY_SIZE, false, false),
new String[] {"REAL", "FLOAT4"},
24
);
add(Value.DOUBLE, Types.DOUBLE, "Double",
add(Value.DOUBLE, Types.DOUBLE,
createDecimal(ValueDouble.PRECISION, ValueDouble.PRECISION,
0, ValueDouble.DISPLAY_SIZE, false, false),
new String[] { "DOUBLE", "DOUBLE PRECISION" },
24
);
add(Value.DOUBLE, Types.FLOAT, "Double",
add(Value.DOUBLE, Types.FLOAT,
createDecimal(ValueDouble.PRECISION, ValueDouble.PRECISION,
0, ValueDouble.DISPLAY_SIZE, false, false),
new String[] {"FLOAT", "FLOAT8" },
24
);
add(Value.TIME, Types.TIME, "Time",
add(Value.TIME, Types.TIME,
createDate(ValueTime.PRECISION, "TIME", 0, ValueTime.DISPLAY_SIZE),
new String[]{"TIME", "TIME WITHOUT TIME ZONE"},
// 24 for ValueTime, 32 for java.sql.Time
56
);
add(Value.DATE, Types.DATE, "Date",
add(Value.DATE, Types.DATE,
createDate(ValueDate.PRECISION, "DATE", 0, ValueDate.DISPLAY_SIZE),
new String[]{"DATE"},
// 24 for ValueDate, 32 for java.sql.Data
56
);
add(Value.TIMESTAMP, Types.TIMESTAMP, "Timestamp",
add(Value.TIMESTAMP, Types.TIMESTAMP,
createDate(ValueTimestamp.PRECISION, "TIMESTAMP",
ValueTimestamp.DEFAULT_SCALE, ValueTimestamp.DISPLAY_SIZE),
new String[]{"TIMESTAMP", "TIMESTAMP WITHOUT TIME ZONE",
......@@ -311,54 +305,54 @@ public class DataType {
// use the value instead of the reference because the code has to
// compile (on Java 1.7). Can be replaced with
// Types.TIMESTAMP_WITH_TIMEZONE once Java 1.8 is required.
add(Value.TIMESTAMP_TZ, 2014, "TimestampTimeZone",
add(Value.TIMESTAMP_TZ, 2014,
createDate(ValueTimestampTimeZone.PRECISION, "TIMESTAMP_TZ",
ValueTimestampTimeZone.DEFAULT_SCALE, ValueTimestampTimeZone.DISPLAY_SIZE),
new String[]{"TIMESTAMP WITH TIME ZONE"},
// 26 for ValueTimestampUtc, 32 for java.sql.Timestamp
58
);
add(Value.BYTES, Types.VARBINARY, "Bytes",
add(Value.BYTES, Types.VARBINARY,
createString(false),
new String[]{"VARBINARY"},
32
);
add(Value.BYTES, Types.BINARY, "Bytes",
add(Value.BYTES, Types.BINARY,
createString(false),
new String[]{"BINARY", "RAW", "BYTEA", "LONG RAW"},
32
);
add(Value.BYTES, Types.LONGVARBINARY, "Bytes",
add(Value.BYTES, Types.LONGVARBINARY,
createString(false),
new String[]{"LONGVARBINARY"},
32
);
add(Value.UUID, Types.BINARY, "Bytes",
add(Value.UUID, Types.BINARY,
createString(false),
// UNIQUEIDENTIFIER is the MSSQL mode equivalent
new String[]{"UUID", "UNIQUEIDENTIFIER"},
32
);
add(Value.JAVA_OBJECT, Types.OTHER, "Object",
add(Value.JAVA_OBJECT, Types.OTHER,
createString(false),
new String[]{"OTHER", "OBJECT", "JAVA_OBJECT"},
24
);
add(Value.BLOB, Types.BLOB, "Blob",
add(Value.BLOB, Types.BLOB,
createLob(),
new String[]{"BLOB", "TINYBLOB", "MEDIUMBLOB",
"LONGBLOB", "IMAGE", "OID"},
// 80 for ValueLob, 24 for String
104
);
add(Value.CLOB, Types.CLOB, "Clob",
add(Value.CLOB, Types.CLOB,
createLob(),
new String[]{"CLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT",
"LONGTEXT", "NTEXT", "NCLOB"},
// 80 for ValueLob, 24 for String
104
);
add(Value.GEOMETRY, Types.OTHER, "Geometry",
add(Value.GEOMETRY, Types.OTHER,
createString(false),
new String[]{"GEOMETRY"},
32
......@@ -366,13 +360,13 @@ public class DataType {
DataType dataType = new DataType();
dataType.prefix = "(";
dataType.suffix = "')";
add(Value.ARRAY, Types.ARRAY, "Array",
add(Value.ARRAY, Types.ARRAY,
dataType,
new String[]{"ARRAY"},
32
);
dataType = new DataType();
add(Value.RESULT_SET, DataType.TYPE_RESULT_SET, "ResultSet",
add(Value.RESULT_SET, DataType.TYPE_RESULT_SET,
dataType,
new String[]{"RESULT_SET"},
400
......@@ -380,7 +374,7 @@ public class DataType {
dataType = createString(false);
dataType.supportsPrecision = false;
dataType.supportsScale = false;
add(Value.ENUM, Types.OTHER, "Enum",
add(Value.ENUM, Types.OTHER,
dataType,
new String[]{"ENUM"},
48
......@@ -391,7 +385,7 @@ public class DataType {
}
private static void addDecimal() {
add(Value.DECIMAL, Types.DECIMAL, "BigDecimal",
add(Value.DECIMAL, Types.DECIMAL,
createDecimal(Integer.MAX_VALUE,
ValueDecimal.DEFAULT_PRECISION,
ValueDecimal.DEFAULT_SCALE,
......@@ -403,7 +397,7 @@ public class DataType {
}
private static void addNumeric() {
add(Value.DECIMAL, Types.NUMERIC, "BigDecimal",
add(Value.DECIMAL, Types.NUMERIC,
createDecimal(Integer.MAX_VALUE,
ValueDecimal.DEFAULT_PRECISION,
ValueDecimal.DEFAULT_SCALE,
......@@ -413,13 +407,12 @@ public class DataType {
);
}
private static void add(int type, int sqlType, String jdbc,
private static void add(int type, int sqlType,
DataType dataType, String[] names, int memory) {
for (int i = 0; i < names.length; i++) {
DataType dt = new DataType();
dt.type = type;
dt.sqlType = sqlType;
dt.jdbc = jdbc;
dt.name = names[i];
dt.autoIncrement = dataType.autoIncrement;
dt.decimal = dataType.decimal;
......
......@@ -5,18 +5,22 @@
*/
package org.h2.test.db;
import org.h2.api.ErrorCode;
import org.h2.test.TestBase;
import org.h2.tools.SimpleResultSet;
import org.h2.util.StringUtils;
import org.h2.util.Task;
import java.sql.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;
import java.util.TreeSet;
import java.util.concurrent.TimeUnit;
import org.h2.api.ErrorCode;
import org.h2.test.TestBase;
import org.h2.tools.SimpleResultSet;
import org.h2.util.StringUtils;
import org.h2.util.Task;
/**
* Test various optimizations (query cache, optimization for MIN(..), and
......@@ -818,7 +822,7 @@ public class TestOptimizations extends TestBase {
}
}
private long measureQuerySpeed(Statement stat, String sql, boolean optimized) throws SQLException {
private static long measureQuerySpeed(Statement stat, String sql, boolean optimized) throws SQLException {
stat.execute("set OPTIMIZE_REUSE_RESULTS " + (optimized ? "1" : "0"));
stat.execute(sql);
long time = System.nanoTime();
......
......@@ -8,12 +8,10 @@ package org.h2.test.store;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.TimeUnit;
import org.h2.mvstore.MVStore;
import org.h2.test.TestBase;
import org.h2.util.New;
......
......@@ -19,8 +19,8 @@ import org.h2.jaqu.Table.JQColumn;
import org.h2.jaqu.Table.JQIndex;
import org.h2.jaqu.Table.JQSchema;
import org.h2.jaqu.Table.JQTable;
import org.h2.jaqu.util.StatementLogger;
import org.h2.jaqu.util.ClassUtils;
import org.h2.jaqu.util.StatementLogger;
import org.h2.util.New;
import org.h2.util.StatementBuilder;
import org.h2.util.StringUtils;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论