暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 14新插件pg_surgery

作者:金涛

PostgreSQL新增extension pg_surgery, 提供了两个函数:

  • heap_force_freeze - 强制要冻结tuple

  • heap_force_kill - 强制删除tuple

jintao@jintao-ThinkPad-L490:~/personal/code/postgresql-master$ psql psql (14devel)Type 'help' for help.mydb=# select version();                                                 version                                                 --------------------------------------------------------------------------------------------------------- PostgreSQL 14devel on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit(1 row)mydb=# create extension pg_surgery ;CREATE EXTENSIONmydb=mydb=# \dx+ pg_surgery     Objects in extension 'pg_surgery'             Object description             -------------------------------------------- function heap_force_freeze(regclass,tid[]) function heap_force_kill(regclass,tid[])(2 rows)mydb=# create table test_surgery(id int);CREATE TABLEmydb=mydb=# insert into test_surgery select generate_series(1,5);INSERT 0 5mydb=mydb=# select xmin, ctid, id from test_surgery ; xmin | ctid  | id ------+-------+----  836 | (0,1) |  1  836 | (0,2) |  2  836 | (0,3) |  3  836 | (0,4) |  4  836 | (0,5) |  5(5 rows)mydb=# select heap_force_freeze('test_surgery'::regclass, array[ '(0,1)' ]::tid[]);     /*freeze单个ctid*/ heap_force_freeze -------------------(1 row)mydb=# select xmin, ctid, id from test_surgery ; xmin | ctid  | id ------+-------+----    2 | (0,1) |  1  836 | (0,2) |  2  836 | (0,3) |  3  836 | (0,4) |  4  836 | (0,5) |  5(5 rows)mydb=# select heap_force_freeze('test_surgery'::regclass, array[ '(0,2)', '(0,5)' ]::tid[]);     /*freeze单个ctid*/ heap_force_freeze -------------------(1 row)mydb=# select xmin, ctid, id from test_surgery ; xmin | ctid  | id ------+-------+----    2 | (0,1) |  1    2 | (0,2) |  2  836 | (0,3) |  3  836 | (0,4) |  4    2 | (0,5) |  5(5 rows)mydb=mydb=# select heap_force_kill('test_surgery'::regclass, array[ '(0,1)' ]::tid[]);                  /*删除单个ctid tuple */ heap_force_kill -----------------(1 row)mydb=# select xmin, ctid, id from test_surgery ; xmin | ctid  | id ------+-------+----    2 | (0,2) |  2  836 | (0,3) |  3  836 | (0,4) |  4    2 | (0,5) |  5(4 rows)mydb=# select heap_force_kill('test_surgery'::regclass, array[ '(0,3)', '(0,5)' ]::tid[]);            /*删除多个ctid tuple*/ heap_force_kill -----------------(1 row)mydb=# select xmin, ctid, id from test_surgery ; xmin | ctid  | id ------+-------+----    2 | (0,2) |  2  836 | (0,4) |  4(2 rows)mydb=#

规模空前,再创历史 | 2020 PG亚洲大会圆满结束
PG ACE计划的正式发布
三期PostgreSQL国际线上沙龙活动的举办
六期PostgreSQL国内线上沙龙活动的举办

中国PostgreSQL分会与腾讯云战略合作协议签订

PostgreSQL 13.0 正式版发布通告

深度报告:开源协议那些事儿

从“非主流”到“潮流”,开源早已值得拥有

Oracle中国正在进行新一轮裁员,传 N+6 补偿

PostgreSQL与MySQL版权比较

新闻|Babelfish使PostgreSQL直接兼容SQL Server应用程序

四年三冠,PostgreSQL再度荣获“年度数据库”

更多新闻资讯行业动态技术热点,请关注中国PostgreSQL分会官方网站

https://www.postgresqlchina.com

中国PostgreSQL分会生态产品

https://www.pgfans.cn

中国PostgreSQL分会资源下载站

https://www.postgreshub.cn


点赞在看分享收藏

文章转载自开源软件联盟PostgreSQL分会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论