PostgreSQL 模式删除背后的代码

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

模式删除:drop schema 模式名

那么具体对应的源代码是那些呢? src/backend/commands/schemacmds.c 

复制代码
/*                                    
 * Guts of schema deletion.                                    
 */                                    
void                                    
RemoveSchemaById(Oid schemaOid)                                    
{                                    
    Relation    relation;                            
    HeapTuple    tup;                            
                                    
    relation = heap_open(NamespaceRelationId, RowExclusiveLock);                                
                                    
    tup = SearchSysCache1(NAMESPACEOID,                                
                          ObjectIdGetDatum(schemaOid));            
    if (!HeapTupleIsValid(tup)) /* should not happen */                                
        elog(ERROR, "cache lookup failed for namespace %u", schemaOid);                            
                                    
    simple_heap_delete(relation, &tup->t_self);                                
                                    
    ReleaseSysCache(tup);                                
                                    
    heap_close(relation, RowExclusiveLock);                                
}                                    
复制代码

如果加入调试信息,可以看到,当初创建 schema时得到的 oid, 删除时也是用此oid 来删除。可以说 schema 的oid 一定存在于某个地方。






本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/10/26/2740932.html,如需转载请自行联系原作者

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
SQL 关系型数据库 数据库
PostgreSQL 删除数据库
PostgreSQL 删除数据库
379 0
|
3月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】PostgreSQL中的模式
在PostgreSQL中,所有数据库对象均隶属于模式,包括表、索引、视图等,每个对象有唯一的oid标识。创建数据库时,默认生成名为“public”的Schema。用户可自定义模式,如通过SQL语句创建名为demo的模式及其下的表。与Oracle不同,PostgreSQL中用户和模式不是一一对应关系。
100 12
【赵渝强老师】PostgreSQL中的模式
|
5月前
|
关系型数据库 数据库 网络虚拟化
Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例
由于时间和空间限制,我将在后续的回答中分别涉及到“Python中采用lasso、SCAD、LARS技术分析棒球运动员薪资的案例集锦”以及“Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例”。如果你有任何一个问题的优先顺序或需要立即回答的,请告知。
96 0
|
7月前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之使用连接串模式新增PostgreSQL数据源时遇到了报错"not support data sync channel, error code: 0001",该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
SQL 存储 Oracle
19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍|学习笔记
快速学习19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍
19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍|学习笔记
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 模式(SCHEMA)
PostgreSQL 模式(SCHEMA)
130 0
|
SQL 存储 关系型数据库
RDS For SQL Server删除数据库报错
RDS For SQL Server删除数据库报错
|
SQL 缓存 网络协议
PostgreSQL 和openGauss错误代码整理(三)
PostgreSQL 和openGauss错误代码整理
876 0
|
SQL 关系型数据库 数据库
PostgreSQL 和openGauss错误代码整理(二)
PostgreSQL 和openGauss错误代码整理
475 0
|
SQL XML 关系型数据库
PostgreSQL 和openGauss错误代码整理(一)
PostgreSQL 和openGauss错误代码整理
558 0