自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 postgresql源码阅读 search_path

plancache用来缓存执行计划,当searchpath改变时,查询语句可能涉及对象变更,对应的执行计划也应不一致,plancache中保存了一份当时的SearchPath,用来验证当前执行计划是否还有效。对于ddl语句,分布在ddl的处理逻辑中,大多数场景同一事务内首次做了recompute,之后都是validate的状态,只需要做判断即可。临时表通过关联ns实现,每个会话有自己独立的tmp_ns,在事务提交时级联删除ns中的内容,或者会话结束时删除,实现临时表的删除。计算赋值searchpath。

2025-12-08 11:50:16 697

原创 ivorysql 源码分析-双port兼容

ivorysql采用双端口的方式实现oracle兼容,默认的5432端口为pg语法,1532用来支持oracle的语法与功能,从官方的流程图上看是支持oracle应用连接的,但是貌似没有支持oracle的协议,以下为支持oracle兼容模式的提交的commit。生成不同语法解析函数:%name-prefix=“base_yy” 代表生成的函数和变量名从yy改成base_yy,同flex,为了在一个产品里使用多个语法分析器,分析不同的数据类。​ 原文件基本复制的plpgsql,做了部分文件名等修改。

2025-12-04 14:46:20 865

原创 postgresql 执行器--todo

【代码】postgresql 执行器--todo。

2025-11-12 10:41:42 112

原创 Redis 7.0 Multi Part AOF的设计和实现

参考。

2025-11-11 14:51:37 238

原创 postgresql pg_dump源码阅读--doing

【代码】postgresql pg_dump源码阅读--doing。

2025-11-07 11:54:38 112

原创 postgresql pg_upgrade源码阅读--doing

pg_upgrade升级时支持如下参数。

2025-11-06 19:18:27 203

原创 postgresql plancache --doing

【代码】postgresql plancache。

2025-10-24 18:36:55 169

原创 postgresql中的relcache和syscache --todo

todo。

2025-10-23 17:18:36 227

原创 postgresql plpgsql实现原理 --todo

2025-10-13 19:16:23 117

原创 postgresql 优化器代码走读 -- doing

入口函数standard_planner。

2025-09-30 19:00:42 238

原创 babelfish for postgresql 分析--babelfishpg_tsql--todo

todo。

2025-09-30 15:54:24 111

原创 babelfish for postgresql 分析--babelfishpg_tds--doing

babelfishpg_tds插件 支持了TDS 协议扩展,实现 TDS 客户端-服务器协议。先看插件加载时的函数。

2025-09-30 15:52:34 642

原创 ivorysql 源码分析--doing

todo。

2025-09-29 18:02:42 89

原创 postgresql 插件创建原理

【代码】postgresql 插件创建原理

2025-09-29 17:39:53 216

原创 babelfish for postgresql 分析--todo

tds.c/tds_srv.c/tdsprotocol.c/tdsresponse.c/….c/.h(pl_comp、pl_exec、pl_funcs、pl_handler 等):PL/tsql 的编译、执行、内置函数与处理器;spatialtypes.c/.h + geo_parser.y/geo_scan.l:空间类型支持(geometry/geography)。catalog.c/.h、multidb.c/.h:逻辑数据库与模式映射、对象目录适配(db.schema.object)。

2025-09-28 17:10:00 905

原创 postgresql中的默认列

default的语法规则在ColConstraintElem下,解析时会解析为Constraint,contype为CONSTR_DEFAULT 存在ColumnDef->constraints下。语义分析对应constraint 并且把表达式结果序列化插入pg_attrdef表中。default语法表达式赋值给raw_default。在重写阶段将表达式赋给对应value。

2025-09-26 16:00:39 254

原创 opengauss tableof实现方式--todo

todo。

2025-08-28 18:04:31 107

原创 postgresql flex bison

https://my.oschina.net/postgresqlchina/blog/5065475

2025-06-30 17:07:53 367

原创 postgresql 权限管理

记录的缓存将在 pg_auth_members (for roles_is_member_of()) pg_database (for roles_is_member_of())表更改时失效。默认缓存当前活跃用户(current user)的角色成员关系,但未来可能扩展为支持多角色缓存。遍历查找给定角色ID的所有直接和间接成员关系,并给cache赋值。以上为执行权限的种类以及适用对象合在系统表中显示的缩写。对象可赋予的访问权限。

2025-06-27 11:03:33 245 1

原创 postgresql sort算子

sort算子执行主要把outerplan取到的数据存到tuplesortstate中,在tuplesort中排序后返回。

2025-06-09 17:49:36 207

原创 cmu 15-445 2024fall lab1 buffer pool manager

因为我的脏页是evict时才会淘汰,evict时把page_table中的脏页映射删除,然后放bpm锁,然后刷脏,这是如果有操作访问旧页,因为页面映射已经被删除回去读磁盘,这时脏页不一定落盘,会导致数据还未写入磁盘读取到不一致的数据,于是新增了一个map用来保存脏页id,如果访问的是正在刷新脏页的话sleep一会,刷新完毕再更新map,优先淘汰访问次数小于k的,一个是访问次数小于k时淘汰第一次访问时间距离当前最远的,大于k时,淘汰最后一次访问时间距离当前最远的。又把frame的锁放在 bmp锁后解锁。

2025-06-01 21:57:17 354

原创 postgresql 语法调试

添加debug的变量后可以在日志中看到bison的debug信息。

2025-05-29 16:45:57 193

原创 postgresql RecursiveUnion算子

RecursiveUnion算子需要结合inner plan中的worktablescan来处理递归。

2025-05-28 18:55:56 216

原创 postgresql 8级锁

【代码】postgresql 8级锁。

2025-05-20 10:04:45 188

原创 postgresql 创建表

create table不需要语法分析,analyze_and_rewrite时直接生成对应的query,在processutility阶段做语法分析后执行。

2025-05-15 18:27:55 261

原创 postgresql unique算子

unique一般用于处理distinct关键字 unique与group一样处理已排好序的tuples,当获取到与上条不一样的tup时 返回投影。

2025-05-13 16:56:05 126

原创 postgresql group算子

group算子的下层为已排好序的outernode,对于group算子的执行实际类似unique。

2025-05-13 16:41:55 215

原创 postgresql 新增一个简单算子demo

1 解析2 生成计划3 执行。

2025-05-09 11:06:23 141

原创 postgresql 生成路径 todo

【代码】postgresql 生成路径 todo。

2025-05-08 17:18:08 114

原创 postgresql sublink

1、sublink解析。

2025-05-08 15:00:49 85

原创 postgresql inner join解析执行

inner join执行计划。inner join解析。inner join执行。

2025-05-07 18:45:22 129

原创 postgresql 执行器junkfilter

junkfilter用于过滤在targetlist中不显示的列。执行 对ExecProcNode返回的slot过滤。

2025-05-07 18:42:15 341

原创 postgresql select查询解析

解析为selectstmt后 在pg_analyze_and_rewrite_fixedparams中进行transform。simple select 主要由targetlist,intoclause,fromclause等构成。主要看transformSelectStmt函数。

2025-05-07 17:09:40 230

原创 pgxc 路由

pgxc 路由。

2025-04-28 20:44:45 250

原创 postgresql 临时表

创建复制表。

2025-04-22 11:37:54 327

原创 postgresql代码走读 分区表 -- doing

支持三种分区,hash、list、range。先看create时的语法定义。

2025-04-13 17:27:09 164

原创 【openeuler yum镜像换源】

参考下面文章将org网址替换为国内源。

2025-04-08 09:54:55 342

原创 postgresql代码走读 事务模块

pg中一个事务块中包含多个事务,所以事务块的状态要比底层事务的状态多。

2025-03-13 21:51:24 244

原创 分布式数据库学习

1、raft学习相关博客。

2025-03-12 21:53:20 223

原创 postgresql代码走读 内存上下文&resourceowner

pg 内存管理

2025-03-12 21:05:03 146

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除