自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 postgresql 执行器中readme的翻译

如果获取的元组中的行标识列为 NULL,则源关系包含一个不被目标表中的任何元组匹配的元组,因此给定计划返回的元组评估每个 WHEN NOT MATCHED 子句的限定表达式。为了实现这种检查,实际上我们从头开始为每个修改的元组(或元组集,对于 SELECT FOR UPDATE)重新运行查询,其中关系扫描节点被调整为仅返回当前元组——要么是原始元组,要么是修改的元组的更新(现在已锁定)版本。如果是这样,我们从修改的元组重新生成更新的元组(如果我们正在执行 UPDATE),最后更新/删除修改的元组。

2026-01-12 18:42:50 624

原创 postgresql源码阅读 search_path

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

2025-12-08 11:50:16 713

原创 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 885

原创 postgresql 执行器--todo

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

2025-11-12 10:41:42 130

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

参考。

2025-11-11 14:51:37 251

原创 postgresql pg_dump源码阅读--doing

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

2025-11-07 11:54:38 123

原创 postgresql pg_upgrade源码阅读--doing

pg_upgrade升级时支持如下参数。

2025-11-06 19:18:27 212

原创 postgresql plancache --doing

【代码】postgresql plancache。

2025-10-24 18:36:55 190

原创 postgresql中的relcache和syscache --todo

todo。

2025-10-23 17:18:36 255

原创 postgresql plpgsql实现原理 --todo

2025-10-13 19:16:23 127

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

入口函数standard_planner。

2025-09-30 19:00:42 247

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

todo。

2025-09-30 15:54:24 136

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

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

2025-09-30 15:52:34 672

原创 ivorysql 源码分析--doing

todo。

2025-09-29 18:02:42 97

原创 postgresql 插件创建原理

【代码】postgresql 插件创建原理

2025-09-29 17:39:53 227

原创 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 938

原创 postgresql中的默认列

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

2025-09-26 16:00:39 259

原创 opengauss tableof实现方式--todo

todo。

2025-08-28 18:04:31 112

原创 postgresql flex bison

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

2025-06-30 17:07:53 374

原创 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 263 1

原创 postgresql sort算子

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

2025-06-09 17:49:36 213

原创 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 367

原创 postgresql 语法调试

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

2025-05-29 16:45:57 205

原创 postgresql RecursiveUnion算子

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

2025-05-28 18:55:56 229

原创 postgresql 8级锁

【代码】postgresql 8级锁。

2025-05-20 10:04:45 197

原创 postgresql 创建表

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

2025-05-15 18:27:55 270

原创 postgresql unique算子

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

2025-05-13 16:56:05 133

原创 postgresql group算子

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

2025-05-13 16:41:55 225

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

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

2025-05-09 11:06:23 148

原创 postgresql 生成路径 todo

【代码】postgresql 生成路径 todo。

2025-05-08 17:18:08 118

原创 postgresql sublink

1、sublink解析。

2025-05-08 15:00:49 96

原创 postgresql inner join解析执行

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

2025-05-07 18:45:22 140

原创 postgresql 执行器junkfilter

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

2025-05-07 18:42:15 359

原创 postgresql select查询解析

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

2025-05-07 17:09:40 244

原创 pgxc 路由

pgxc 路由。

2025-04-28 20:44:45 258

原创 postgresql 临时表

创建复制表。

2025-04-22 11:37:54 342

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

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

2025-04-13 17:27:09 183

原创 【openeuler yum镜像换源】

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

2025-04-08 09:54:55 355

原创 postgresql代码走读 事务模块

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

2025-03-13 21:51:24 255

原创 分布式数据库学习

1、raft学习相关博客。

2025-03-12 21:53:20 229

空空如也

空空如也

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

TA关注的人

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