免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4150 | 回复: 0
打印 上一主题 下一主题

关于Oid的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-01 18:18 |只看该作者 |倒序浏览
在postgresql中Oid的定义为:typedef unsigned int Oid;
因此它的值域是:[0, 2^32-1]
其中
Oid 0 是无效的Oid
Oid 1-9999 被保留用于手工的分配
Oid 10000-16383 被保留用于在初始化数据库时使用Oid生成器来分配
Oid 16384-end 将在正常的多用户操作过程中通过Oid生成器被分配
这个是我在源码中找到的,结合GetNewObjectId函数可以知道系统表里的Oid肯定是不会重用的,我想知道的是如果用户输入造成的Oid重用会怎样?比如:
1 用户在建表的时候,指定每一行都有一个Oid
2 用户建表的时候建了一个大对象字段,这样也会申请一个Oid
3 用户建立触发器,系统也会分配一个Oid
4 用户修改relfilenode字段,系统也会分配一个Oid
5 用户建立一个数据库的时候,系统也会分配一个Oid
..................
针对上述情形,Oid重用可能发生在同种类型之间,也可能发生在不同种类型之间,各自都会出现什么情况?谢谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP