PostgreSQL源码学习--执行器#7,8
本节介绍ExecProcNodeFirst函数和ExecProcNode函数。ExecProcNodeFirst函数//src/backend/executor/execProcnode.cstatic T
2024-11-15
PostgreSQL源码学习--执行器#9
本节介绍ExecutePlan函数相关数据结构typedef enum ScanDirection{BackwardScanDirection = -1,NoMovementScanDirection = 0,ForwardScanDirection = 1}
2024-11-15
PostgreSQL源码学习--执行器#10,11
本节介绍standard_ExecutorRun和ExecutorRun函数。standard_ExecutorRun函数//src/include/execurot/executor.hextern void standard_ExecutorRun(Que
2024-11-15
PostgreSQL源码学习--调度器#13
本节介绍PortalRunMulti函数。PortalRunMulti函数static voidPortalRunMulti(Portal portal, bool isTopLevel, bool setHoldSnapshot, DestRecei
2024-11-15
PostgreSQL源码学习--调度器#12
本节介绍ProcessQuery函数。相关数据结构//src/include/executor/execdesc.htypedef struct QueryDesc{/* These fields are provided by CreateQueryDesc
2024-11-15
PostgreSQL源码学习--调度器#14
本节介绍PortalRun函数。PortalRun函数//src/include/tcop/pquery.hextern bool PortalRun(Portal portal, long count, bool isTopLevel, bool run_
2024-11-15
PostgreSQL源码学习(1)Page页
The Internals of PostgreSQL中对于存储的描述http://www.interdb.jp/pg/pgsql01.html#_1.2.每个表或索引都作为一个page数组存储于物理数据文件中(page大小默认为8k,编译时可以指定),单个的
2024-11-15
PostgreSQL源码学习--插入数据#6
本节介绍ExecModifyTable函数。相关数据结构typedef struct ModifyTableState{PlanStateps;CmdTypeoperation;/* INSERT
2024-11-15
PostgreSQL源码学习--更新数据#3
本节介绍ExecUpdate函数。ExecUpdate函数static TupleTableSlot *ExecUpdate(ModifyTableState *mtstate, ItemPointer tupleid, HeapTuple oldtu
2024-11-15
PostgreSQL源码学习--删除数据#0
以一条delete from test where a = 123;的SQL语句为例,跟踪删除数据的代码逻辑。(PG版本为12.2)删除数据主要的函数是heap_delete。查看调用栈:#0 heap_delete (relation=0x7f67ac24
2024-11-15
PostgreSQL源码学习--更新数据#1,2
本节介绍heapam_tuple_update和table_tuple_update函数。heapam_tuple_update函数//src/backend/access/heap/heapam_handler.cstatic TM_Resultheapam
2024-11-15
PostgreSQL源码学习--更新数据#0
以一条update test set b = "bcd" where a = 123;的SQL语句为例,跟踪更新数据的代码逻辑。(PG版本为12.2)删除数据主要的函数是heap_update。查看调用栈:#0 heap_update (relation=0
2024-11-15
PostgreSQL源码学习--插入数据#4,5
本节介绍table_tuple_insert和ExecInsert函数。相关数据结构//src/include/utils/rel.htypedef struct RelationData{TupleDescrd_att;/* tupl
2024-11-15
PostgreSQL源码学习--插入数据#2
本节介绍heap_insert函数的代码流程本节前置toast机制:https://www.postgresql.org/docs/12/storage-toast.html可见性映射表:https://www.postgresql.org/docs/12/s
2024-11-15
PostgreSQL源码学习--插入数据#3
本节介绍heapam_tuple_insert函数的代码流程相关数据结构结构体中有些成员可能目前难以理解,暂时先列出来,先把当前用到的成员能搞明白就可以。// src/include/executor/tuptable.htypedef struct Tupl
2024-11-15
PostgreSQL源码学习--删除数据#1,2
本节介绍heapam_tuple_delete和table_tuple_delete函数。heapam_tuple_delete函数//src/backend/access/heap/heapam_handler.cstatic TM_Resultheapam
2024-11-15
PostgreSQL源码学习--删除数据#3
本节介绍ExecDelete函数。从表中删除时,tupleid标识要删除的元组,oldtuple为空;从视图中删除时,oldtuple传递给INSTEAD OF触发器标识要删除的内容,tupleid无效;从外部表中删除时,tupleid无效,fdw使用plan
2024-11-15
PostgreSQL源码学习(2)插入数据#0
插入数据主要的实现在bufpage.c中,主要的函数是PageAddItemExtended。查看调用栈:#0 PageAddItemExtended (page=0x7fddcac3cd00 "", item=0x141f540 "34701",
2024-11-15
时序数据库Influx-IOx源码学习四(Run命令的执行)
欢迎关注公众号: 上篇介绍到:InfluxDB-IOx的命令行及配置,详情见:https://my.oschina.net/u/3374539/blog/5017858 这章记录一下Run命令的执行过程。 //根据用户在命令行配置的num_threads
2024-11-15