Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
c01e16d6
提交
c01e16d6
authored
7 年前
作者:
Owner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Trying less restrictive lazy eval case
上级
c4ddebe6
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
22 行增加
和
15 行删除
+22
-15
Select.java
h2/src/main/org/h2/command/dml/Select.java
+13
-7
TestMvccMultiThreaded2.java
h2/src/test/org/h2/test/mvcc/TestMvccMultiThreaded2.java
+9
-8
没有找到文件。
h2/src/main/org/h2/command/dml/Select.java
浏览文件 @
c01e16d6
...
@@ -665,13 +665,19 @@ public class Select extends Query {
...
@@ -665,13 +665,19 @@ public class Select extends Query {
}
}
private
boolean
hasRecursiveTableView
()
{
private
boolean
hasRecursiveTableView
()
{
// go through the table filters to see if we have a recursive table query
// // go through the table filters to see if we have a recursive table query
for
(
TableFilter
f
:
filters
)
{
// for (TableFilter f : filters) {
if
(
f
.
getTable
().
isTableExpression
()){
// if(f.getTable().isTableExpression()){
TableView
v
=
(
TableView
)
f
.
getTable
();
// TableView v = (TableView)f.getTable();
if
(
v
.
isRecursive
()){
// if(v.isRecursive()){
return
true
;
// return true;
}
// }
// }
// }
if
(
this
.
topTableFilter
.
getTable
().
isTableExpression
()){
TableView
v
=
(
TableView
)
this
.
topTableFilter
.
getTable
();
if
(
v
.
isRecursive
()){
return
true
;
}
}
}
}
return
false
;
return
false
;
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/mvcc/TestMvccMultiThreaded2.java
浏览文件 @
c01e16d6
...
@@ -76,18 +76,19 @@ public class TestMvccMultiThreaded2 extends TestBase {
...
@@ -76,18 +76,19 @@ public class TestMvccMultiThreaded2 extends TestBase {
// give any of the 100 threads a chance to start by yielding the processor to them
// give any of the 100 threads a chance to start by yielding the processor to them
Thread
.
yield
();
Thread
.
yield
();
//
make sure all threads have stopped by joining with them
//
gather stats on threads after they finished
@SuppressWarnings
(
"unused"
)
@SuppressWarnings
(
"unused"
)
int
minProcessed
=
Integer
.
MAX_VALUE
,
maxProcessed
=
0
,
totalProcessed
=
0
;
int
minProcessed
=
Integer
.
MAX_VALUE
,
maxProcessed
=
0
,
totalProcessed
=
0
;
for
(
SelectForUpdate
sfu
:
threads
)
{
for
(
SelectForUpdate
sfu
:
threads
)
{
// make sure all threads have stopped by joining with them
sfu
.
join
();
sfu
.
join
();
totalProcessed
+=
sfu
.
i
n
terationsProcessed
;
totalProcessed
+=
sfu
.
iterationsProcessed
;
if
(
sfu
.
i
n
terationsProcessed
>
maxProcessed
){
if
(
sfu
.
iterationsProcessed
>
maxProcessed
){
maxProcessed
=
sfu
.
i
n
terationsProcessed
;
maxProcessed
=
sfu
.
iterationsProcessed
;
}
}
if
(
sfu
.
i
n
terationsProcessed
<
minProcessed
){
if
(
sfu
.
iterationsProcessed
<
minProcessed
){
minProcessed
=
sfu
.
i
n
terationsProcessed
;
minProcessed
=
sfu
.
iterationsProcessed
;
}
}
}
}
...
@@ -104,7 +105,7 @@ public class TestMvccMultiThreaded2 extends TestBase {
...
@@ -104,7 +105,7 @@ public class TestMvccMultiThreaded2 extends TestBase {
private
class
SelectForUpdate
extends
Thread
{
private
class
SelectForUpdate
extends
Thread
{
public
int
i
n
terationsProcessed
=
0
;
public
int
iterationsProcessed
=
0
;
@Override
@Override
public
void
run
()
{
public
void
run
()
{
...
@@ -129,7 +130,7 @@ public class TestMvccMultiThreaded2 extends TestBase {
...
@@ -129,7 +130,7 @@ public class TestMvccMultiThreaded2 extends TestBase {
assertTrue
(
rs
.
getInt
(
2
)
==
100
);
assertTrue
(
rs
.
getInt
(
2
)
==
100
);
conn
.
commit
();
conn
.
commit
();
i
n
terationsProcessed
++;
iterationsProcessed
++;
long
now
=
System
.
currentTimeMillis
();
long
now
=
System
.
currentTimeMillis
();
if
(
now
-
start
>
1000
*
TEST_TIME_SECONDS
){
if
(
now
-
start
>
1000
*
TEST_TIME_SECONDS
){
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论