Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
d5d91bfe
提交
d5d91bfe
authored
7 年前
作者:
andrei
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'h2database/master' into non_blocking
上级
c8773680
850bee14
master
version-1.4.198
无相关合并请求
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
109 行增加
和
22 行删除
+109
-22
Parser.java
h2/src/main/org/h2/command/Parser.java
+1
-0
Comparison.java
h2/src/main/org/h2/expression/Comparison.java
+19
-6
Value.java
h2/src/main/org/h2/value/Value.java
+11
-0
TestPreparedStatement.java
h2/src/test/org/h2/test/jdbc/TestPreparedStatement.java
+21
-0
TestScript.java
h2/src/test/org/h2/test/scripts/TestScript.java
+2
-1
alterTableAdd.sql
h2/src/test/org/h2/test/scripts/ddl/alterTableAdd.sql
+15
-0
createTable.sql
h2/src/test/org/h2/test/scripts/ddl/createTable.sql
+16
-0
Build.java
h2/src/tools/org/h2/build/Build.java
+24
-15
没有找到文件。
h2/src/main/org/h2/command/Parser.java
浏览文件 @
d5d91bfe
...
...
@@ -6727,6 +6727,7 @@ public class Parser {
cols
[
0
].
columnName
=
column
.
getName
();
AlterTableAddConstraint
pk
=
new
AlterTableAddConstraint
(
session
,
schema
,
false
);
pk
.
setConstraintName
(
constraintName
);
pk
.
setPrimaryKeyHash
(
hash
);
pk
.
setType
(
CommandInterface
.
ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY
);
pk
.
setTableName
(
tableName
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/expression/Comparison.java
浏览文件 @
d5d91bfe
...
...
@@ -16,10 +16,7 @@ import org.h2.table.Column;
import
org.h2.table.ColumnResolver
;
import
org.h2.table.TableFilter
;
import
org.h2.util.MathUtils
;
import
org.h2.value.Value
;
import
org.h2.value.ValueBoolean
;
import
org.h2.value.ValueGeometry
;
import
org.h2.value.ValueNull
;
import
org.h2.value.*
;
/**
* Example comparison expressions are ID=1, NAME=NAME, NAME IS NULL.
...
...
@@ -266,12 +263,28 @@ public class Comparison extends Condition {
}
}
int
dataType
=
Value
.
getHigherOrder
(
left
.
getType
(),
right
.
getType
());
l
=
l
.
convertTo
(
dataType
);
r
=
r
.
convertTo
(
dataType
);
if
(
dataType
==
Value
.
ENUM
)
{
String
[]
enumerators
=
getEnumerators
(
l
,
r
);
l
=
l
.
convertToEnum
(
enumerators
);
r
=
r
.
convertToEnum
(
enumerators
);
}
else
{
l
=
l
.
convertTo
(
dataType
);
r
=
r
.
convertTo
(
dataType
);
}
boolean
result
=
compareNotNull
(
database
,
l
,
r
,
compareType
);
return
ValueBoolean
.
get
(
result
);
}
private
String
[]
getEnumerators
(
Value
left
,
Value
right
)
{
if
(
left
.
getType
()
==
Value
.
ENUM
)
{
return
((
ValueEnum
)
left
).
getEnumerators
();
}
else
if
(
right
.
getType
()
==
Value
.
ENUM
)
{
return
((
ValueEnum
)
right
).
getEnumerators
();
}
else
{
return
new
String
[
0
];
}
}
/**
* Compare two values, given the values are not NULL.
*
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/value/Value.java
浏览文件 @
d5d91bfe
...
...
@@ -592,6 +592,17 @@ public abstract class Value {
return
convertTo
(
targetType
,
-
1
,
null
);
}
/**
* Convert value to ENUM value
* @param enumerators allowed values for the ENUM to which the value is converted
* @return value represented as ENUM
*/
public
Value
convertToEnum
(
String
[]
enumerators
)
{
// Use -1 to indicate "default behaviour" where value conversion should not
// depend on any datatype precision.
return
convertTo
(
ENUM
,
-
1
,
null
,
null
,
enumerators
);
}
/**
* Compare a value to the specified type.
*
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/jdbc/TestPreparedStatement.java
浏览文件 @
d5d91bfe
...
...
@@ -479,6 +479,27 @@ public class TestPreparedStatement extends TestBase {
assertEquals
(
Integer
.
class
,
o
.
getClass
());
}
for
(
int
i
=
0
;
i
<
goodSizes
.
length
;
i
++)
{
PreparedStatement
prep
=
conn
.
prepareStatement
(
"SELECT * FROM test_enum WHERE size = ?"
);
prep
.
setObject
(
1
,
goodSizes
[
i
]);
ResultSet
rs
=
prep
.
executeQuery
();
rs
.
next
();
String
s
=
rs
.
getString
(
1
);
assertTrue
(
s
.
equals
(
goodSizes
[
i
]));
assertFalse
(
rs
.
next
());
}
for
(
int
i
=
0
;
i
<
badSizes
.
length
;
i
++)
{
PreparedStatement
prep
=
conn
.
prepareStatement
(
"SELECT * FROM test_enum WHERE size = ?"
);
prep
.
setObject
(
1
,
badSizes
[
i
]);
if
(
config
.
lazy
)
{
ResultSet
resultSet
=
prep
.
executeQuery
();
assertThrows
(
ErrorCode
.
ENUM_VALUE_NOT_PERMITTED
,
resultSet
).
next
();
}
else
{
assertThrows
(
ErrorCode
.
ENUM_VALUE_NOT_PERMITTED
,
prep
).
executeQuery
();
}
}
stat
.
execute
(
"DROP TABLE test_enum"
);
}
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/scripts/TestScript.java
浏览文件 @
d5d91bfe
...
...
@@ -102,7 +102,8 @@ public class TestScript extends TestBase {
"uuid"
,
"varchar"
,
"varchar-ignorecase"
})
{
testScript
(
"datatypes/"
+
s
+
".sql"
);
}
for
(
String
s
:
new
String
[]
{
"alterTableAdd"
,
"alterTableDropColumn"
,
"createView"
,
"dropSchema"
})
{
for
(
String
s
:
new
String
[]
{
"alterTableAdd"
,
"alterTableDropColumn"
,
"createView"
,
"createTable"
,
"dropSchema"
})
{
testScript
(
"ddl/"
+
s
+
".sql"
);
}
for
(
String
s
:
new
String
[]
{
"insertIgnore"
,
"mergeUsing"
,
"script"
,
"with"
})
{
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/scripts/ddl/alterTableAdd.sql
浏览文件 @
d5d91bfe
...
...
@@ -86,3 +86,18 @@ INSERT INTO TEST VALUES (10, 20, 30, 40);
DROP
TABLE
TEST
;
>
ok
CREATE
TABLE
TEST
();
>
ok
ALTER
TABLE
TEST
ADD
A
INT
CONSTRAINT
PK_1
PRIMARY
KEY
;
>
ok
SELECT
CONSTRAINT_NAME
,
CONSTRAINT_TYPE
FROM
INFORMATION_SCHEMA
.
TABLE_CONSTRAINTS
;
>
CONSTRAINT_NAME
CONSTRAINT_TYPE
>
--------------- ---------------
>
PK_1
PRIMARY
KEY
>
rows
:
1
DROP
TABLE
TEST
;
>
ok
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/scripts/ddl/createTable.sql
0 → 100644
浏览文件 @
d5d91bfe
-- Copyright 2004-2018 H2 Group. Multiple-Licensed under the MPL 2.0,
-- and the EPL 1.0 (http://h2database.com/html/license.html).
-- Initial Developer: H2 Group
--
CREATE
TABLE
TEST
(
A
INT
CONSTRAINT
PK_1
PRIMARY
KEY
);
>
ok
SELECT
CONSTRAINT_NAME
,
CONSTRAINT_TYPE
FROM
INFORMATION_SCHEMA
.
TABLE_CONSTRAINTS
;
>
CONSTRAINT_NAME
CONSTRAINT_TYPE
>
--------------- ---------------
>
PK_1
PRIMARY
KEY
>
rows
:
1
DROP
TABLE
TEST
;
>
ok
This diff is collapsed.
Click to expand it.
h2/src/tools/org/h2/build/Build.java
浏览文件 @
d5d91bfe
...
...
@@ -163,15 +163,15 @@ public class Build extends BuildBase {
downloadUsingMaven
(
"ext/org.jacoco.report-0.8.0.jar"
,
"org.jacoco"
,
"org.jacoco.report"
,
"0.8.0"
,
"1bcab2a451f5a382bc674857c8f3f6d3fa52151d"
);
downloadUsingMaven
(
"ext/asm-6.1
-beta
.jar"
,
"org.ow2.asm"
,
"asm"
,
"6.1
-beta
"
,
"
bac2f84e42b7db902103a9ec8c4ca1293223e0ea
"
);
downloadUsingMaven
(
"ext/asm-commons-6.1
-beta
.jar"
,
"org.ow2.asm"
,
"asm-commons"
,
"6.1
-beta
"
,
"
4ec77cde3be41559f92d25cdb39b9c55ee479253
"
);
downloadUsingMaven
(
"ext/asm-tree-6.1
-beta
.jar"
,
"org.ow2.asm"
,
"asm-tree"
,
"6.1
-beta
"
,
"
539d3b0f5f7f5b04b1c286de8e76655b59ab2d43
"
);
downloadUsingMaven
(
"ext/asm-6.1.jar"
,
"org.ow2.asm"
,
"asm"
,
"6.1"
,
"
94a0d17ba8eb24833cd54253ace9b053786a9571
"
);
downloadUsingMaven
(
"ext/asm-commons-6.1.jar"
,
"org.ow2.asm"
,
"asm-commons"
,
"6.1"
,
"
8a8d242d7ce00fc937a245fae5b65763d13f7cd1
"
);
downloadUsingMaven
(
"ext/asm-tree-6.1.jar"
,
"org.ow2.asm"
,
"asm-tree"
,
"6.1"
,
"
701262d4b9bcbdc2d4b80617e82db9a2b7f4f088
"
);
downloadUsingMaven
(
"ext/args4j-2.33.jar"
,
"args4j"
,
"args4j"
,
"2.33"
,
"bd87a75374a6d6523de82fef51fc3cfe9baf9fc9"
);
...
...
@@ -209,9 +209,9 @@ public class Build extends BuildBase {
"ext/org.jacoco.cli-0.8.0.jar"
+
File
.
pathSeparator
+
"ext/org.jacoco.core-0.8.0.jar"
+
File
.
pathSeparator
+
"ext/org.jacoco.report-0.8.0.jar"
+
File
.
pathSeparator
+
"ext/asm-6.1
-beta
.jar"
+
File
.
pathSeparator
+
"ext/asm-commons-6.1
-beta
.jar"
+
File
.
pathSeparator
+
"ext/asm-tree-6.1
-beta
.jar"
+
File
.
pathSeparator
+
"ext/asm-6.1.jar"
+
File
.
pathSeparator
+
"ext/asm-commons-6.1.jar"
+
File
.
pathSeparator
+
"ext/asm-tree-6.1.jar"
+
File
.
pathSeparator
+
"ext/args4j-2.33.jar"
,
"org.jacoco.cli.internal.Main"
,
"report"
,
"coverage/jacoco.exec"
,
"--classfiles"
,
"coverage/bin"
,
...
...
@@ -524,16 +524,22 @@ public class Build extends BuildBase {
return
files
;
}
/**
* Add META-INF/versions for Java 9+.
*/
private
void
addVersions
()
{
copy
(
"temp/META-INF/versions/9"
,
files
(
"src/java9/precompiled"
),
"src/java9/precompiled"
);
}
/**
* Create the regular h2.jar file.
*/
@Description
(
summary
=
"Create the regular h2.jar file."
)
public
void
jar
()
{
compile
();
FileList
files
=
files
(
"src/java9/precompiled"
);
copy
(
"temp/META-INF/versions/9"
,
files
,
"src/java9/precompiled"
);
addVersions
();
manifest
(
"H2 Database Engine"
,
"org.h2.tools.Console"
);
files
=
files
(
"temp"
).
FileList
files
=
files
(
"temp"
).
exclude
(
"temp/android/*"
).
exclude
(
"temp/org/h2/android/*"
).
exclude
(
"temp/org/h2/build/*"
).
...
...
@@ -596,6 +602,7 @@ public class Build extends BuildBase {
@Description
(
summary
=
"Create h2client.jar with only the remote JDBC implementation."
)
public
void
jarClient
()
{
compile
(
true
,
true
,
false
);
addVersions
();
FileList
files
=
files
(
"temp"
).
exclude
(
"temp/org/h2/build/*"
).
exclude
(
"temp/org/h2/dev/*"
).
...
...
@@ -622,6 +629,7 @@ public class Build extends BuildBase {
@Description
(
summary
=
"Create h2mvstore.jar containing only the MVStore."
)
public
void
jarMVStore
()
{
compileMVStore
(
true
);
addVersions
();
manifestMVStore
();
FileList
files
=
files
(
"temp"
);
files
.
exclude
(
"*.DS_Store"
);
...
...
@@ -636,6 +644,7 @@ public class Build extends BuildBase {
@Description
(
summary
=
"Create h2small.jar containing only the embedded database."
)
public
void
jarSmall
()
{
compile
(
false
,
false
,
true
);
addVersions
();
FileList
files
=
files
(
"temp"
).
exclude
(
"temp/android/*"
).
exclude
(
"temp/org/h2/android/*"
).
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论