Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
fcd9ac4c
提交
fcd9ac4c
authored
6 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Optimize EXCLUDE GROUP part 2
上级
de4aaa48
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
8 行增加
和
67 行删除
+8
-67
WindowFrame.java
h2/src/main/org/h2/expression/aggregate/WindowFrame.java
+8
-67
没有找到文件。
h2/src/main/org/h2/expression/aggregate/WindowFrame.java
浏览文件 @
fcd9ac4c
...
...
@@ -6,7 +6,6 @@
package
org
.
h2
.
expression
.
aggregate
;
import
java.util.ArrayList
;
import
java.util.BitSet
;
import
java.util.Collections
;
import
java.util.Iterator
;
import
java.util.NoSuchElementException
;
...
...
@@ -28,6 +27,8 @@ public final class WindowFrame {
final
ArrayList
<
Value
[]>
orderedRows
;
int
cursor
;
Itr
(
ArrayList
<
Value
[]>
orderedRows
)
{
this
.
orderedRows
=
orderedRows
;
}
...
...
@@ -43,8 +44,6 @@ public final class WindowFrame {
final
int
endIndex
;
int
cursor
;
PlainItr
(
ArrayList
<
Value
[]>
orderedRows
,
int
startIndex
,
int
endIndex
)
{
super
(
orderedRows
);
this
.
endIndex
=
endIndex
;
...
...
@@ -70,8 +69,6 @@ public final class WindowFrame {
final
int
startIndex
;
int
cursor
;
PlainReverseItr
(
ArrayList
<
Value
[]>
orderedRows
,
int
startIndex
,
int
endIndex
)
{
super
(
orderedRows
);
this
.
startIndex
=
startIndex
;
...
...
@@ -183,62 +180,6 @@ public final class WindowFrame {
}
private
static
abstract
class
AbstractBitSetItr
extends
Itr
{
final
BitSet
set
;
int
cursor
;
AbstractBitSetItr
(
ArrayList
<
Value
[]>
orderedRows
,
BitSet
set
)
{
super
(
orderedRows
);
this
.
set
=
set
;
}
@Override
public
final
boolean
hasNext
()
{
return
cursor
>=
0
;
}
}
private
static
final
class
BitSetItr
extends
AbstractBitSetItr
{
BitSetItr
(
ArrayList
<
Value
[]>
orderedRows
,
BitSet
set
)
{
super
(
orderedRows
,
set
);
cursor
=
set
.
nextSetBit
(
0
);
}
@Override
public
Value
[]
next
()
{
if
(
cursor
<
0
)
{
throw
new
NoSuchElementException
();
}
Value
[]
result
=
orderedRows
.
get
(
cursor
);
cursor
=
set
.
nextSetBit
(
cursor
+
1
);
return
result
;
}
}
private
static
final
class
BitSetReverseItr
extends
AbstractBitSetItr
{
BitSetReverseItr
(
ArrayList
<
Value
[]>
orderedRows
,
BitSet
set
)
{
super
(
orderedRows
,
set
);
cursor
=
set
.
length
()
-
1
;
}
@Override
public
Value
[]
next
()
{
if
(
cursor
<
0
)
{
throw
new
NoSuchElementException
();
}
Value
[]
result
=
orderedRows
.
get
(
cursor
);
cursor
=
set
.
previousSetBit
(
cursor
-
1
);
return
result
;
}
}
private
final
WindowFrameUnits
units
;
private
final
WindowFrameBound
starting
;
...
...
@@ -619,13 +560,13 @@ public final class WindowFrame {
}
}
}
else
{
BitSet
set
=
new
BitSet
(
endIndex
+
1
);
set
.
set
(
startIndex
,
endIndex
+
1
);
set
.
clear
(
exStart
,
exEnd
+
1
);
if
(
set
.
isEmpty
())
{
return
Collections
.
emptyIterator
();
if
(
startIndex
>=
exStart
)
{
startIndex
=
exEnd
+
1
;
}
else
if
(
endIndex
<=
exEnd
)
{
endIndex
=
exStart
-
1
;
}
else
{
return
biIterator
(
orderedRows
,
startIndex
,
exStart
-
1
,
exEnd
+
1
,
endIndex
,
reverse
);
}
return
reverse
?
new
BitSetReverseItr
(
orderedRows
,
set
)
:
new
BitSetItr
(
orderedRows
,
set
);
}
}
return
plainIterator
(
orderedRows
,
startIndex
,
endIndex
,
reverse
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论