PostgreSQL源码学习--调度器#12
本节介绍ProcessQuery函数。相关数据结构//src/include/executor/execdesc.htypedef struct QueryDesc{/* These fields are provided by CreateQueryDesc
2024-11-15
PostgreSQL源码学习--调度器#13
本节介绍PortalRunMulti函数。PortalRunMulti函数static voidPortalRunMulti(Portal portal, bool isTopLevel, bool setHoldSnapshot, DestRecei
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源码学习--执行器#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源码学习(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
Go调度器学习之goroutine调度怎么创建
今天小编给大家分享一下Go调度器学习之goroutine调度怎么创建的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 协程
2024-11-15