- 博客(61)
- 资源 (11)
- 收藏
- 关注
原创 8 缓冲区管理器
文章目录8.1概览1.缓冲区管理器的结构2.缓冲区标签管理共享内存和持久存储之间的数据传输重要Postgresql的缓冲区管理器十分高效 图8.1展示缓冲区管理器存储和后端进程之间的关系后续的章节分别介绍缓冲区管理器的结构缓冲区管理器的锁缓冲区管理器的工作原理环形缓冲区脏页刷盘8.1概览1.缓冲区管理器的结构缓冲表、缓冲区描述符和缓冲池组成缓冲池层存储着数据文件页面表页与索引页及其相应的自由空间映射和可见性映射的页面缓冲池是一个数组,每个槽存储
2020-09-27 15:26:48 438
原创 8.3.12 Class extension with %extend
8.3.12 Class extension with %extendSWIG can extend structures and classes with new methods.原本的类长这个样子class Complex {private: double rpart, ipart;public: Complex(double r = 0, double i = 0) : rpart(r), ipart(i) { } Complex(const Complex &
2020-09-24 11:09:18 166
原创 lua支持传引用啦!+ 返回int &却出错了
文章目录lua支持传引用啦!返回int &却出错了lua支持传引用啦!并且lua中函数到底是值传递还是引用传递取决于啥?取决于这个函数在cpp里面到底是值传递还是引用传递example.h#include <vector>struct haha{ int a=1; int b=2;};class Vector{public: Vector(int,int); double abs(); void display
2020-09-23 16:10:42 459 1
原创 backend\optimizer\path\joinpath.c里面定义了一个hook
文章目录backend\optimizer\path\joinpath.c里面定义了一个hookbackend\optimizer\path\joinpath.c里面定义了一个hookset_join_pathlist_hook 可是你不能只在你这个.c里定义啊你得把他放到头文件给别人准备用啊果然它在src\include\optimizer\paths.h里有如下的话extern PGDLLIMPORT set_join_pathlist_hook_type set_join_pat
2020-09-23 16:08:31 244
原创 五:并发控制
文章目录多个事务同时在数据库中运行时,并发控制是一种用于维持一致性与隔离性的技术 宽泛讲三种并发控制技术MVCCS2PLOCC都有多种变体MVCC中,每个写操作都创建一个新版本数据项保留其旧版本当事务读取数据对象时,系统会选择其中的一个版本,通过这种方式来确保各个事务间隔离读不会阻塞写,写也不会阻塞读基于S2PL的系统在写操作发生时会阻塞相应对象上的读操作,因为写入者获取了对象上的排他锁Postgresql和一些关系型数据库用一种MVCC的变体SI
2020-09-22 13:08:35 381
原创 在我公司的虚拟机上测试PG性能
文章目录在我公司的虚拟机上测试PG性能在我公司的虚拟机上测试PG性能create database temp;\c tempcreate table TEST_A(id1 int ,id2 int ,id3 int ,id4 int);insert into TEST_A select generate_series(1,10000),floor(random()*100),floor(random()*100),floor(random()*100);create table TEST_B(
2020-09-21 11:00:33 399
原创 ubuntu下安装lex和yacc系列
文章目录ubuntu下安装lex和yacc系列ubuntu下安装lex和yacc系列sudo apt-get install flex bison结果我发现我已经安装了哈哈吧 A.lex%{ #include<stdio.h>%}%%[a-z] printf("%c",yytext[0]+'A'-'a');%%lex A.lexcc -o A lex.yy.c -ll./A < logfile我把桌面上的logfile被这个./A识别
2020-09-20 11:03:57 2002
原创 echo [-ne][字符串]
文章目录echo [-ne][字符串]echo [-ne][字符串]echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。-n 不要在最后自动换行-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般 文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行
2020-09-18 17:47:52 1056
原创 二:企业设立、经营与财务报表
文章目录第1章:企业三张基本财务报表它们之间关系 例子强化一下三张报表项目之间及三张报表和业务间内在联系的理解资产负债表、利润表和现金流量表怎样受到企业的一些基本业务的影响的 先把三张空白的财务报表放在这里,依次如下(见表2-1至表2-3)这三张基本财务报表是空白的,没有任何数字。现从设立企业开始分析 ...
2020-09-18 15:17:30 253
原创 三:查询处理
文章目录3.2单表查询的代价估计3.2单表查询的代价估计Pg查询优化是基于代价的。代价是无量纲的值,它不是一种绝对的性能指标,但可以作为比较各种操作代价时的相对性能指标。 costsize.c中函数估算各种操作的代价。所有被执行器执行的操作都有着相应的代价函数。cost_seqscan()和 cost_index()估算顺序扫描和索引扫描的代价。 Pg有三种代价总代价启动代价和运行代价的和,只有启动代价和运行代价是单独估计 1.启动代价:读取到
2020-09-17 19:33:06 335
原创 八:env和module
文章目录8.2.3模块的热更新原理8.2.3模块的热更新原理很好支持代码热更新机制,是开发时选择使用脚本语言的原因之一。热更新的好处不重启程序或发布新版本情况下更新脚本,给调试和线上解决问题带来便利对开发效率有很大的提升。 谈谈如何实现热更新。 简单回顾之前提过的模块和require机制。Lua内部提供require函数来实现模块加载,它做的事情主要有以下几个。 registry["_LOADED"]表中判断该模块是否已经加载过依次调用注册的loader来加载
2020-09-17 19:11:48 246
原创 两个类一毛一样,我把他们的指针互相转化居然可成功!+天呐!,这居然是对的
两个类一毛一样,我把他们的指针互相转化居然可成功!应该是他们是同一块内存,给出了两种解释但都可以成功!#include <iostream>using namespace std;class my_class {public: int variable1; double variable2;public: my_class() { variable1 = 1; variable2 = 112.445; }; void print_my() { cout
2020-09-17 08:32:47 158
原创 在lua脚本里面设置require的搜索路径
文章目录在lua脚本里面设置require的搜索路径在lua脚本里面设置require的搜索路径有时候requite错了的话就这样干package.cpath = “D:/kdsf/?.dll”package.path = “/usr/local/lib/lua/5.1/?.lua;”
2020-09-16 18:27:49 1128
原创 CET时间
文章目录CET时间CET时间Central European Time即中欧时间(UTC/GMT+1).与北京时间(UTC/GMT+8)的时差是7个小时
2020-09-15 20:28:36 1534
原创 C++ 的引用参数取sizeof
文章目录C++ 的引用参数取sizeofC++ 的引用参数取sizeof#include <iostream>using namespace std;struct haha{int a;int b;int c;};void nn(haha &a){cout << a.a<<endl;cout <<sizeof(a)<<endl;} int main() { haha a={12,23};
2020-09-15 16:03:57 586
原创 group by 系列
文章目录select max(id2) from test1 group by id1 ;看看have_grouping这个变量的四个组成部分select max(id2) from test1 group by id1 ;刚进入create_plan的时候,你猜猜这个*best_path是啥呢?(gdb) print (*best_path)$1 = {type = T_AggPath, pathtype = T_Agg, parent = 0x13cc168, pathtarget =
2020-09-15 16:02:15 225
原创 C2061是啥错误
extern “C” {#include “lua.h”#include “lualib.h”#include “lauxlib.h”}
2020-09-15 15:39:53 571
原创 windows 搞搞SWIG系列
windows下安装SWIG地址https://sourceforge.net/projects/swig/files/ 我进入swigwin,下载了swigwin-4.0.1.zip解压之后这个样子 然后直接配置环境变量就好了根本不需要安装 还可以输入swig --help看看成功了没有...
2020-09-14 09:36:18 399
原创 二:lua滴数据类型
文章目录2.1 C中实现通用数据结构一般做法2.2 Lua通用数据结构的实现Lua是动态类型脚本语言,同一个变量可以在不同时刻指向不同类型的数据。 用一个通用的数据结构lua_Tvalue统一表示所有在Lua虚拟机中需要保存的数据类型,这里将这个通用数据结构一层一层地拆解开来介绍。C中实现相似的功能,一般做法是怎样2.1 C中实现通用数据结构一般做法如果要用一个通用的数据结构来表示不同数据类型,一般的做法应该是这样的。 一个字段来存储数据类型需存储不同的数
2020-09-13 17:20:01 1478
原创 把lua搞成面向对象吧!
mytable = setmetatable({key1 = “value1”}, {__index = function(mytable, key)if key == “key2” thenreturn “metatablevalue”elsereturn nilendend})function mytable.withdraw ()print(“dfsg”)endmytable.withdraw()
2020-09-12 19:38:41 155
原创 只有指针,参数却是引用 + 类成员含有引用的时候
文章目录这个函数是传递引用的这个函数是传递引用的结果你只有指针咋办呢呢?只需要将*p传入即可哈哈哈哈!
2020-09-12 17:45:51 135
原创 lua的for和wile
文章目录for循环whiel一个例子for循环for var=exp1,exp2,exp3 do <执行体> endvar 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 varexp3 可选的,如果不指定,默认1whiel一个例子index = 1while index <= 100 do print(index) index = index + 1end...
2020-09-12 12:11:22 152
原创 a=123,a是啥类型
文章目录a=123,a是啥类型a=123,a是啥类型a=123;print (type(a))if(a==123)then print("dsfsdf")end--[[numberdsfsdf--]]
2020-09-12 11:39:57 2073
原创 lua中的表是引用传递哦!
文章目录lua中的表是引用传递哦!lua中的表是引用传递哦!L={a=3,b=4}function haha(L)L.a =99endhaha(L)print(L.a)--jie guo shi 99
2020-09-12 11:13:38 607
原创 我为C++的友元函数而打call
文章目录我为C++的友元函数而打call我为C++的友元函数而打call#include <iostream>using namespace std;class my_class {private: int variable1; int variable2; char variable3; double variable4; char variable5; char variable6;public: void set_my() { variable1 = 1;
2020-09-11 19:37:01 139
原创 lua_tonumber不自动出栈哦!
文章目录lua_tonumberlua_tonumber特码的好像lua_tonumber不自动出栈哦!哎,不出就不出把lua_tonumber(L, 1);lua_tonumber(L, 2);分别代表从左到右的参数!#include <stdio.h>extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"}/* 指向lua解释器的指针 */lua_State* L;
2020-09-11 16:05:34 990
原创 来自老邢的提问:select id2+id1 as sdfkd from test1 ;时候的parse->jointree->fromlist为空吗?
文章目录来自老邢的提问:select id2+id1 as sdfkd from test1 ;时候的parse->jointree->fromlist为空吗?来自老邢的提问:select id2+id1 as sdfkd from test1 ;时候的parse->jointree->fromlist为空吗?居然不为空,fromlist只有一个节点是/* * We could use direct pointers to the RT entries and
2020-09-11 14:46:10 160
原创 query_planner中的某些函数的作用
文章目录query_planner中的某些函数的作用setup_simple_rel_arraysquery_planner中的某些函数的作用setup_simple_rel_arrays这个函数的作用是Make a flattened version of the rangetable for faster access (this isOK because the rangetable won’t change any more)and set up an empty array f
2020-09-11 13:49:55 332
原创 6 树和二叉树
文章目录2. 遍历的非递归算法2. 遍历的非递归算法用栈实现先序、中序、后序遍历算法树根进栈;栈非空时循环;第一次成为栈顶时,将左孩进栈,对先序,此时访问栈顶第二次成为栈顶时,将右孩进栈,对中序,此时访问栈顶第三次成为栈顶时,本身节点出栈,对后序遍历,此时访问栈顶...
2020-09-10 21:33:53 145
原创 看看slot的每个值
文章目录看看slot的每个值看看slot的每个值postgres=# select * from test1; id1 | id2 -----+----- 2 | 3 3 | 4断点打在ExecScan到了163行之后,看看(gdb) print(slot -> tts_nvalid)答案是0 (gdb) print (slot ->tts_values[0] )$9 = 2(gdb) print (slot ->tts_values[
2020-09-10 16:05:01 557
原创 数据库新趋势:AI-Powered DBs
文章目录数据库新趋势:AI-Powered DBs数据库新趋势:AI-Powered DBs数据库是数据科学平台性的基础设施,涉及到大量的优化,包括两个相互依赖的逻辑层次:数据和操作。数据层面涉及到数据格式、模型、缓存;操作层面涉及查询优化,索引,聚合,近似查询等。数据与操作是紧密依赖的,主要取决于业务的需求,根据支撑查询的类型,范围、可扩展性、延迟要求等来设计相应的数据存储和查询操作。操作层面也需要更加数据层的特征来组织查询优化、批处理、数据同步等操作。这也意味着即便同样的数据源支撑同样的
2020-09-09 00:04:04 624 2
原创 tx 让我pandas分类汇总
文章目录pandas分类汇总pandas分类汇总按照b分组import pandas as pddata = pd.read_csv("1.csv")grouped=data.groupby(data['b'])print(grouped.sum())
2020-09-08 12:01:14 226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人