SQLite3 源码分析-sqlite_schema(sqlite_master) 的创建
前记 在 sqlite 初始化的过程中,会首先创建 sqlite_schema(sqlite_master) 这个表,然后执行 select * from main.sqlite_master 语句,将数据库中的表,索引,视图,触发器等信息加载到 sqlite->aDb->pSchema 中。 整体结构图 flowchart LR A(["sqlite init"]) -...
前记 在 sqlite 初始化的过程中,会首先创建 sqlite_schema(sqlite_master) 这个表,然后执行 select * from main.sqlite_master 语句,将数据库中的表,索引,视图,触发器等信息加载到 sqlite->aDb->pSchema 中。 整体结构图 flowchart LR A(["sqlite init"]) -...
前记 我们此次对 SQlite3 3.40 版本的源码进行分析,可以直接在 gitee 上进行下载。操作系统我们这次使用的是 Rocky Linux 9 ,当然也可以选择其他系统。此外我们还需要的软件是 Vscode ,可以很方便的帮助我们分析代码,调试代码。 环境准备 下载代码 git clone -b version-3.40.0 https://gitee.com/mirror...
LLDB 打印数组 在 vscode 中使用 lldb 调试 C/C++ 时,我们想打印数组的时候,可以在 DEBUG 命令行输入 parray 即可输出数组,也可以在 WATCH 窗口中使用 var,[N] 的语法形式,注意逗号后不要有空格。
auth_delay 让服务器在报告身份验证失败前短暂暂停,以增加对数据库密码进行暴力破解的难度。需要注意的是,这对阻止拒绝服务攻击毫无帮助,甚至可能加剧攻击,因为在报告身份验证失败前等待的进程仍会占用连接。 要使用这个模块必须要在 postgresql.conf 中配置参数 shared_preload_libraries = 'auth_delay' auth_delay.millis...
adminpack 提供了大量支持功能,pgAdmin 和其他管理工具可以使用这些功能提供额外功能,例如远程管理服务器日志文件。默认情况下,只有数据库超级用户才能使用所有这些功能,但其他用户也可以使用 GRANT 命令使用这些功能。 我们先来看一下他支持的函数,可以通过 \dx+ adminpack 来进行查看 function pg_file_rename(text,text) ...
在学习存储引擎编写的时候,发现一个错误处理的函数的写法是 __attribute__((__format__(__printf__, 4, 0))) static bool try_vsprintf(char **buffer, char *buffer_end, size_t *chars, const char *format, va_list ap) {...
该文章翻译自 https://www.enjoyalgorithms.com/blog/bloom-filter/ Bloom 过滤器是一种空间效率高的概率数据结构,它能告诉我们某个元素可能在某个集合中,或者肯定不在某个集合中。如果我们在Bloom 过滤器中查找一个项,可以得到两种可能的结果。 这个项肯定不在这个集合中,真否定 项目可能存在于集合中,可以是徦阳性或真阳性, ...