提交 c5dddee9 authored 作者: Thomas Mueller's avatar Thomas Mueller

Data types CLOB and BLOB: the maximum precision was Integer.MAX_VALUE, it is now Long.MAX_VALUE.

上级 9ec412a8
...@@ -18,7 +18,9 @@ Change Log ...@@ -18,7 +18,9 @@ Change Log
<h1>Change Log</h1> <h1>Change Log</h1>
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul><li>Multi-threaded kernel: creating and dropping temporary database objects <ul><li>The functions LENGTH, OCTET_LENGTH, and BIT_LENGTH now return BIGINT.
</li><li>Data types CLOB and BLOB: the maximum precision was Integer.MAX_VALUE, it is now Long.MAX_VALUE.
</li><li>Multi-threaded kernel: creating and dropping temporary database objects
and the potentially free pages list was not correctly synchronized. Thanks a lot and the potentially free pages list was not correctly synchronized. Thanks a lot
to Eric Faulhaber for the test case and patch! to Eric Faulhaber for the test case and patch!
</li><li>Parsing SQL script files is now faster. </li><li>Parsing SQL script files is now faster.
......
...@@ -50,6 +50,7 @@ import org.h2.schema.Sequence; ...@@ -50,6 +50,7 @@ import org.h2.schema.Sequence;
import org.h2.schema.TriggerObject; import org.h2.schema.TriggerObject;
import org.h2.store.DiskFile; import org.h2.store.DiskFile;
import org.h2.tools.Csv; import org.h2.tools.Csv;
import org.h2.util.MathUtils;
import org.h2.util.ObjectArray; import org.h2.util.ObjectArray;
import org.h2.util.Resources; import org.h2.util.Resources;
import org.h2.util.StatementBuilder; import org.h2.util.StatementBuilder;
...@@ -888,7 +889,7 @@ public class MetaTable extends Table { ...@@ -888,7 +889,7 @@ public class MetaTable extends Table {
// DATA_TYPE // DATA_TYPE
String.valueOf(t.sqlType), String.valueOf(t.sqlType),
// PRECISION // PRECISION
String.valueOf(t.maxPrecision), String.valueOf(MathUtils.convertLongToInt(t.maxPrecision)),
// PREFIX // PREFIX
t.prefix, t.prefix,
// SUFFIX // SUFFIX
......
...@@ -100,7 +100,7 @@ public class DataType { ...@@ -100,7 +100,7 @@ public class DataType {
public int sqlType; public int sqlType;
/** /**
* The SQL type name. * The Java class name.
*/ */
public String jdbc; public String jdbc;
...@@ -113,7 +113,7 @@ public class DataType { ...@@ -113,7 +113,7 @@ public class DataType {
/** /**
* The maximum supported precision. * The maximum supported precision.
*/ */
public int maxPrecision; public long maxPrecision;
/** /**
* The lowest possible scale. * The lowest possible scale.
...@@ -314,13 +314,13 @@ public class DataType { ...@@ -314,13 +314,13 @@ public class DataType {
new String[]{"OTHER", "OBJECT", "JAVA_OBJECT"}, new String[]{"OTHER", "OBJECT", "JAVA_OBJECT"},
8 8
); );
add(Value.BLOB, Types.BLOB, "Bytes", add(Value.BLOB, Types.BLOB, "Blob",
createString(false), createLob(),
new String[]{"BLOB", "TINYBLOB", "MEDIUMBLOB", "LONGBLOB", "IMAGE", "OID"}, new String[]{"BLOB", "TINYBLOB", "MEDIUMBLOB", "LONGBLOB", "IMAGE", "OID"},
10 10
); );
add(Value.CLOB, Types.CLOB, "String", add(Value.CLOB, Types.CLOB, "Clob",
createString(true), createLob(),
new String[]{"CLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "NTEXT", "NCLOB"}, new String[]{"CLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "NTEXT", "NCLOB"},
10 10
); );
...@@ -425,6 +425,13 @@ public class DataType { ...@@ -425,6 +425,13 @@ public class DataType {
return dataType; return dataType;
} }
private static DataType createLob() {
DataType t = createString(true);
t.maxPrecision = Long.MAX_VALUE;
t.defaultPrecision = Long.MAX_VALUE;
return t;
}
/** /**
* Get the list of data types. * Get the list of data types.
* *
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论