提交 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
<h1>Change Log</h1>
<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
to Eric Faulhaber for the test case and patch!
</li><li>Parsing SQL script files is now faster.
......
......@@ -50,6 +50,7 @@ import org.h2.schema.Sequence;
import org.h2.schema.TriggerObject;
import org.h2.store.DiskFile;
import org.h2.tools.Csv;
import org.h2.util.MathUtils;
import org.h2.util.ObjectArray;
import org.h2.util.Resources;
import org.h2.util.StatementBuilder;
......@@ -888,7 +889,7 @@ public class MetaTable extends Table {
// DATA_TYPE
String.valueOf(t.sqlType),
// PRECISION
String.valueOf(t.maxPrecision),
String.valueOf(MathUtils.convertLongToInt(t.maxPrecision)),
// PREFIX
t.prefix,
// SUFFIX
......
......@@ -100,7 +100,7 @@ public class DataType {
public int sqlType;
/**
* The SQL type name.
* The Java class name.
*/
public String jdbc;
......@@ -113,7 +113,7 @@ public class DataType {
/**
* The maximum supported precision.
*/
public int maxPrecision;
public long maxPrecision;
/**
* The lowest possible scale.
......@@ -314,13 +314,13 @@ public class DataType {
new String[]{"OTHER", "OBJECT", "JAVA_OBJECT"},
8
);
add(Value.BLOB, Types.BLOB, "Bytes",
createString(false),
add(Value.BLOB, Types.BLOB, "Blob",
createLob(),
new String[]{"BLOB", "TINYBLOB", "MEDIUMBLOB", "LONGBLOB", "IMAGE", "OID"},
10
);
add(Value.CLOB, Types.CLOB, "String",
createString(true),
add(Value.CLOB, Types.CLOB, "Clob",
createLob(),
new String[]{"CLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "NTEXT", "NCLOB"},
10
);
......@@ -425,6 +425,13 @@ public class 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.
*
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论