Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
d41c7df9
提交
d41c7df9
authored
6 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix ConditionInSelect for optimizeInSelect = false
上级
58d82af2
master
version-1.4.198
无相关合并请求
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
8 行增加
和
6 行删除
+8
-6
ConditionInSelect.java
...c/main/org/h2/expression/condition/ConditionInSelect.java
+8
-6
没有找到文件。
h2/src/main/org/h2/expression/condition/ConditionInSelect.java
浏览文件 @
d41c7df9
...
@@ -99,9 +99,7 @@ public class ConditionInSelect extends Condition {
...
@@ -99,9 +99,7 @@ public class ConditionInSelect extends Condition {
// row, and if l is not null
// row, and if l is not null
if
(
all
)
{
if
(
all
)
{
while
(
rows
.
next
())
{
while
(
rows
.
next
())
{
Value
[]
currentRow
=
rows
.
currentRow
();
Value
cmp
=
compare
(
l
,
rows
);
Value
r
=
query
.
getColumnCount
()
==
1
?
currentRow
[
0
]
:
ValueRow
.
get
(
currentRow
);
Value
cmp
=
Comparison
.
compare
(
database
,
l
,
r
,
compareType
);
if
(
cmp
==
ValueNull
.
INSTANCE
)
{
if
(
cmp
==
ValueNull
.
INSTANCE
)
{
return
ValueNull
.
INSTANCE
;
return
ValueNull
.
INSTANCE
;
}
else
if
(
cmp
==
ValueBoolean
.
FALSE
)
{
}
else
if
(
cmp
==
ValueBoolean
.
FALSE
)
{
...
@@ -112,9 +110,7 @@ public class ConditionInSelect extends Condition {
...
@@ -112,9 +110,7 @@ public class ConditionInSelect extends Condition {
}
else
{
}
else
{
boolean
hasNull
=
false
;
boolean
hasNull
=
false
;
while
(
rows
.
next
())
{
while
(
rows
.
next
())
{
Value
[]
currentRow
=
rows
.
currentRow
();
Value
cmp
=
compare
(
l
,
rows
);
Value
r
=
query
.
getColumnCount
()
==
1
?
currentRow
[
0
]
:
ValueRow
.
get
(
currentRow
);
Value
cmp
=
Comparison
.
compare
(
database
,
l
,
r
,
compareType
);
if
(
cmp
==
ValueNull
.
INSTANCE
)
{
if
(
cmp
==
ValueNull
.
INSTANCE
)
{
hasNull
=
true
;
hasNull
=
true
;
}
else
if
(
cmp
==
ValueBoolean
.
TRUE
)
{
}
else
if
(
cmp
==
ValueBoolean
.
TRUE
)
{
...
@@ -128,6 +124,12 @@ public class ConditionInSelect extends Condition {
...
@@ -128,6 +124,12 @@ public class ConditionInSelect extends Condition {
}
}
}
}
private
Value
compare
(
Value
l
,
ResultInterface
rows
)
{
Value
[]
currentRow
=
rows
.
currentRow
();
Value
r
=
l
.
getType
()
!=
Value
.
ROW
&&
query
.
getColumnCount
()
==
1
?
currentRow
[
0
]
:
ValueRow
.
get
(
currentRow
);
return
Comparison
.
compare
(
database
,
l
,
r
,
compareType
);
}
@Override
@Override
public
void
mapColumns
(
ColumnResolver
resolver
,
int
level
,
int
state
)
{
public
void
mapColumns
(
ColumnResolver
resolver
,
int
level
,
int
state
)
{
left
.
mapColumns
(
resolver
,
level
,
state
);
left
.
mapColumns
(
resolver
,
level
,
state
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论