Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
e92dcf83
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e92dcf83
编写于
4月 12, 2017
作者:
A
Ashwin Agrawal
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Test to validate vacuum doesn't remove tuples that are still needed.
上级
3c75d515
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
57 addition
and
1 deletion
+57
-1
src/test/isolation/expected/heap-serializable-vacuum.out
src/test/isolation/expected/heap-serializable-vacuum.out
+16
-0
src/test/isolation/isolation_schedule
src/test/isolation/isolation_schedule
+1
-1
src/test/isolation/specs/heap-serializable-vacuum.spec
src/test/isolation/specs/heap-serializable-vacuum.spec
+40
-0
未找到文件。
src/test/isolation/expected/heap-serializable-vacuum.out
0 → 100644
浏览文件 @
e92dcf83
Parsed test spec with 2 sessions
starting permutation: s1begin s1delete s2begin s1commit s1vacuum s2select
step s1begin: begin;
step s1delete: delete from heaptest;
step s2begin: BEGIN ISOLATION LEVEL SERIALIZABLE;
select 123 as "establish snapshot";
establish snapshot
123
step s1commit: commit;
step s1vacuum: vacuum heaptest;
step s2select: select count(*) from heaptest;
count
100
src/test/isolation/isolation_schedule
浏览文件 @
e92dcf83
# GPDB-specific tests
test: heap-serializable-vacuum
test: ao-serializable-read
test: ao-serializable-vacuum
test: ao-insert-eof
src/test/isolation/specs/heap-serializable-vacuum.spec
0 → 100644
浏览文件 @
e92dcf83
# Test behaviour with distributed (serializable) snapshots and vacuum.
#
# The crux of this test is that session 2 begins a serializable
# transaction, but it doesn't immediately do any actions in that transaction
# that would open the connections to the QEs. Hence, GetSnapshotData() isn't
# called in the QEs for session 2 the "s2select" stage. Meanwhile, session 1
# deletes rows from the table that session 2 later needs to see, and runs
# vacuum. If there is no mechanism to prevent the global "oldest xmin" from
# advancing, it will merrily vacuum away tuples that session 2 needs to see
# later.
#
# In a single-node system, the dummy "establish snapshot" query will set
# MyProc->xmin and prevent the tuples it needs to see later from being
# vacuumed away. In MPP, the dummy query establishes a distributed snapshot,
# but that doesn't immediately set the xmin values in QEs.
setup
{
create table heaptest (i int, j int);
insert into heaptest select i, i from generate_series(0, 99) i;
}
teardown
{
drop table if exists heaptest;
}
session "s1"
step "s1begin" { begin; }
step "s1delete" { delete from heaptest; }
step "s1commit" { commit; }
step "s1vacuum" { vacuum heaptest; }
session "s2"
step "s2begin" { BEGIN ISOLATION LEVEL SERIALIZABLE;
select 123 as "establish snapshot"; }
step "s2select" { select count(*) from heaptest; }
teardown { abort; }
permutation "s1begin" "s1delete" "s2begin" "s1commit" "s1vacuum" "s2select"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录