调试postgresql9.5.2最新源码

最近在考量数据库的选型,考虑后期把数据切换到postgresql ,postgresql源码用c实现,代码很精炼完美,值得学习下

首先去pgsql官网下载最新的源码 ,然后还需要perl,bison

先安装ActiverPerl-5.22.1.2201x64.msi 默认装在c盘,一路点next安装。

我是将Perl是安装到了C盘,则在系统环境变量中添加Perl的C盘路径位置。

打开postgresql9.5.2 文件夹,找到MKVcbuild.pm文件(如下图所示),用文本编辑器打开,修改其中my $vsVersion = DetermineVisualStudioVersion()该行,变为my $vsVersion = “12.0.0”,VS2013 对应的version版本是12.0

反键编辑

打开cmd或用vs2013自带的x64 cmd命令工具打开, 切换到源码msvc目录

MSVC目录下,输入perl build.pl DEBUG  然后开始编译代码,这里需要5-6分钟,速度根据跟人的电脑配置来定

生成源码完成后最后如图所示

接着在命令编辑器中继续输入perl install.pl path,例如:

perl install.pl D:\pgbin

生成后的效果如图

这里很关键 如果没有下面的操作 你就需要去源码里面去掉管理员权限的判断,如果用超级管理员运行 会报错

我们用cmd命令添加一个 postgres用户

net user postgres postgres /add

打开运行输入 runas /user:postgres cmd.exe

此时会以postgres权限打开cmd

我们先直接打开cmd 初始化数据库DB

postgres.exe -D DB 这里就启动了一个server实例,开始监听所有的链接

输入postgres.exe -D DB   (注意-D中的D一定要大写),这里不一定是DB,你也可以自己定

我这里用的数据库pgsql

到这里pgsql服务器算是启动好了。

然后我们用navcat 连接一下试试,建一个数据库

打开源码项目,这里加载会要几分钟时间

backend\executor\execMain.c ,依次打上断点

最后我们这里打开 psql源码, 打开pquery.c,里面设置好断点

启动调试,进断点了。

今天还有点晚了,接下来有时间再分享源码结构的学习

关于源码的说明有专门的网站 http://doxygen.postgresql.org/

接下来就可以开始postgresql的源码学习之旅了,你就可以通过navcat建表,删表,插入数据,update,多种操作,尽情的揉虐 pgsql源码了。希望此文能给大家学习pgsql一些帮助,这款数据库真的很优秀,如果你去用了会有一种相见恨晚的感觉

时间: 2025-01-13 15:32:09

调试postgresql9.5.2最新源码的相关文章

PostgreSQL9.2.4内核源码结构介绍

PostgreSQL的源代码可以随意获得,其开源协议也允许研究者任意修改,这里介绍一下PostgreSQL的源码结构以及部分实现机制.下载PostgreSQL源代码并减压后,其一级目录结构如下图: PostgreSQL源代码一级结构 其中config目录下存放一些系统的配置文件.contrib目录下包括一些没有集成到核心代码中的外围工具和一些实验性质的开发代码.doc目录下是帮助文档,由SGML编写.src为系统核心代码,其他文件属于编译安装相关文件. src目录,各子目录及其对应内容如下表:

Android事件传递机制详解及最新源码分析——ViewGroup篇

在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴,强烈建议先阅读上一篇. 好了,废话还是少说,直奔主题,开始本篇的ViewGroup事件传递机制探索之旅. 依然从简单的Demo例子现象开始分析 新建安卓工程,首先自定义一个Button以及一个RelativeLayout,很简单,只是重写了主要与事件传递机制相关的方法,代码如下: 自定义WLButton类: 1 public class WLButton e

在Ubuntu上下载、编译和安装Android最新源码

看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源码是不支持在Windows上编译上,于是决定使用虚拟机安装Ubuntu,然后下载.编译和安装Android源码. 一. 环境准备. 1. 磁盘空间预留20G左右,内存3G,由于一边要跑主机,一边要跑虚拟机,内存要求还是比較高的,这样才会比較流畅. 2. 安装VMWare 7.1.4.我的操作系统是W

eclipse调试第三方jar包需要源码的问题

很多时候测试自己的jar包功能时,需要有一个测试工程导入该jar包,但是一般在调试的时候,需要跟进去看看步骤和逻辑是否正确,这个时候就需要在jar包的源码中下断点.最近刚好自己也会经常这样做,也遇到了类似的问题,相信不少网友都会遇到,这里把我看到的一个解决方法贴出来,原帖在这里:http://www.tuicool.com/articles/aa6zyi,感谢作者的无私奉献. 步骤如下: 1.选择要调试的项目进入调试状态. 2.在thread这里,选择当前线程,然后右键,选择edit sourc

[福音][散发]从github下载Android最新源码

============问题描述============ 我刚发表了一篇博文<从github下载最新Android源码>,想看Andorid源码,又迫于google被墙的同学可以看看- 本贴散分,先到先得- 文章链接:http://blog.csdn.net/xusiwei1236/article/details/39395359 (欢迎大家前去围观) ============解决方案1============ 我最先到..... ============解决方案2============ 沙

SoYun社工库最新源码以及审计出的漏洞报告信息

本文作者:浅蓝 前段时间有人发过搜云的源码,都好长时间了. 这次我放出个最新的. 是在他换模板之前的源码.(现在的搜云后端基本没什么变化 换了个模板而已) 同时审计出来了一些漏洞.. 我里面的数据库配置信息等重要敏感信息换成了"马赛克" 以下附上审计出的漏洞 1.user.ph#sql注入 265行 $card = $_POST['card']; if ($_POST['card']) {     $sql = "select * from alipay where card

【原创】Newlife.XCode的常见功能使用(一)附X组件2015最新源码

你还可以参考本博客其他的XCode以及.NET开源项目的相关文章: Newlife XCode组件资源目录汇总[2013年版] 拥有自己的代码生成器—Newlife.Xcode模板编写教程 [原创]开源.NET下的XML数据库介绍及入门                      Newlife.XCode对象容器与接口操作实例 [转载总结]关于泛型基类的相关知识                              利用Xcode 20行代码搞定任何数据库的迁移 使用Xcode自动向数据库插

自动升级系统的设计与实现(续2) -- 增加断点续传功能 (附最新源码)

一.缘起 之前已经写了两篇关于自动升级系统OAUS的设计与实现的文章(第一篇.第二篇),在为OAUS服务端增加自动检测文件变更的功能(这样每次部署版本升级时,可以节省很多时间,而且可以避免手动修改带来的错误)后,有部分使用者又提出了一个很好的建议:为OAUS增加断点续传功能.因为如果网络状态不是很好,就经常会在升级到一半的时候,由于OAUS客户端掉线而导致升级失败,这个时候,就必须重新开始整个升级过程.即使升级中断的时候,已经完成了99%,也必须重头再来.所以,为OAUS增加断点续传功能是非常必

自动升级系统OAUS的设计与实现(续) (附最新源码)

一.缘起 自从 自动升级系统的设计与实现(源码) 发布以后,收到了很多使用者的反馈,其中最多的要求就是希望OAUS服务端增加自动检测文件变更的功能,这样每次部署版本升级时,可以节省很多时间,而且可以避免手动修改带来的错误. 现在,我就简单介绍一下最新版本的OAUS中关于这个功能的实现.在上一个版本中,我们是这样操作的: 每次有版本更新时,我们需要把更新的文件拷贝到服务端的FileFolder文件夹下覆盖掉旧的文件,然后通过上述的操作界面,来手动修改每个文件的版本号.这个过程很繁琐,而且容易出错.