Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
cb8d0ff9
提交
cb8d0ff9
authored
6 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix Select.getGroupDataIfCurrent() for some queries
上级
11f00203
master
version-1.4.198
无相关合并请求
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
40 行增加
和
0 行删除
+40
-0
Select.java
h2/src/main/org/h2/command/dml/Select.java
+22
-0
select.sql
h2/src/test/org/h2/test/scripts/dml/select.sql
+18
-0
没有找到文件。
h2/src/main/org/h2/command/dml/Select.java
浏览文件 @
cb8d0ff9
...
...
@@ -44,6 +44,7 @@ import org.h2.table.IndexColumn;
import
org.h2.table.JoinBatch
;
import
org.h2.table.Table
;
import
org.h2.table.TableFilter
;
import
org.h2.table.TableFilter.TableFilterVisitor
;
import
org.h2.table.TableType
;
import
org.h2.table.TableView
;
import
org.h2.util.ColumnNamer
;
...
...
@@ -117,6 +118,11 @@ public class Select extends Query {
*/
boolean
[]
groupByExpression
;
/**
* Select with grouped data for aggregates.
*/
private
Select
groupSelect
;
/**
* Grouped data for aggregates.
*/
...
...
@@ -213,6 +219,10 @@ public class Select extends Query {
return
group
;
}
void
setGroupSelect
(
Select
groupSelect
)
{
this
.
groupSelect
=
groupSelect
;
}
/**
* Get the group data if there is currently a group-by active.
*
...
...
@@ -220,6 +230,9 @@ public class Select extends Query {
* @return the grouped data
*/
public
SelectGroups
getGroupDataIfCurrent
(
boolean
window
)
{
if
(
groupSelect
!=
null
)
{
return
groupSelect
.
getGroupDataIfCurrent
(
window
);
}
return
groupData
!=
null
&&
(
window
||
groupData
.
isCurrentGroup
())
?
groupData
:
null
;
}
...
...
@@ -1333,6 +1346,15 @@ public class Select extends Query {
isGroupSortedQuery
=
true
;
}
}
topTableFilter
.
visit
(
new
TableFilterVisitor
()
{
@Override
public
void
accept
(
TableFilter
f
)
{
Select
s
=
f
.
getSelect
();
if
(
s
!=
null
&&
s
!=
Select
.
this
)
{
s
.
setGroupSelect
(
Select
.
this
);
}
}
});
expressionArray
=
expressions
.
toArray
(
new
Expression
[
0
]);
isPrepared
=
true
;
}
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/scripts/dml/select.sql
浏览文件 @
cb8d0ff9
...
...
@@ -584,3 +584,21 @@ SELECT COUNT(*) C FROM TEST QUALIFY C < 1;
DROP
TABLE
TEST
;
>
ok
SELECT
A
,
ROW_NUMBER
()
OVER
(
ORDER
BY
B
)
R
FROM
(
VALUES
(
1
,
2
),
(
2
,
1
),
(
3
,
3
))
T
(
A
,
B
);
>
A
R
>
-
-
>
1
2
>
2
1
>
3
3
>
rows
:
3
SELECT
X
,
A
,
ROW_NUMBER
()
OVER
(
ORDER
BY
B
)
R
FROM
(
SELECT
1
X
),
(
VALUES
(
1
,
2
),
(
2
,
1
),
(
3
,
3
))
T
(
A
,
B
);
>
X
A
R
>
-
-
-
>
1
1
2
>
1
2
1
>
1
3
3
>
rows
:
3
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论