最近在考量数据库的选型,考虑后期把数据切换到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用户打开的cmd 也能初始化,但是接下来的连接等就会有问题了,不稳定

用postgres用户打开cmd

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

这里就开始监听了

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

以上几次测试

下面我 输入 postgres.exe -D pgsql 

我这里用的数据库pgsql

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

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

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

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

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

启动调试,进断点了。

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

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

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

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

  1. Android最新源码4.3下载-教程 2013-11

    Android最新源码4.3下载-教程 有的下载会出现问题: 需要 修改manifest.xml中的fetch: "git://Android.git.linaro.org/"  ...

  2. 即时通信系统中如何实现:全局系统通知,并与Web后台集成?【低调赠送:QQ高仿版GGTalk 5.1 最新源码】

    像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用GGTalk的朋友都建议我加上一个类似 ...

  3. LAMP最新源码一键安装脚本

    Linux+Apache+MySQL+PHP (脚本可以选择是否安装+Pureftpd+User manager for PureFTPd+phpMyAdmin+memcache),添加虚拟主机请执行 ...

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

    看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源 ...

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

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴 ...

  6. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  7. 即时通信系统中实现全局系统通知,并与Web后台集成【附C#开源即时通讯系统(支持广域网)——QQ高仿版IM最新源码】

    像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用C#开源即时通讯系统——GGTalk的 ...

  8. 使用 IntelliJ IDEA 导入 Spark 最新源码及编译 Spark 源代码(博主强烈推荐)

    前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. 准备工作 1.sca ...

  9. 如何做到在虚拟数据库和真实数据库之间自由切换?【低调赠送:QQ高仿版GG 4.4 最新源码】

    记得以前在公司上班时,有时候白天的活没干完,我就会把工作带回家晚上加班继续做.但是,我们开发用的数据库是部署在公司局网内部的一台服务器上的,在家里是肯定连不上这台机器的.在家里没有数据库,服务端就跑不 ...

随机推荐

  1. c语言数组的操作

    #include<stdio.h> #include<malloc.h> #include<stdlib.h>//exit() struct Arr//定义了一个数 ...

  2. 在vmware 6.5+ubuntu12.04上安装VMware tools出现问题的分析

    笔者已经写了一篇关于安装"VMware Tools",以实现文件共享的文章,那篇文章对于你实现共享操作是足够了, 所以,倘若你赶时间不如直接去在虚拟机的linux中利用VMware ...

  3. [置顶] Android Journal

    ==================================================================================================== ...

  4. 50个实用的jQuery代码段让你成为更好的Web前端工程师

    本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...

  5. jQuery响应式幻灯片插件jquery.glide.js(支持触摸&轻量级)

    找到一款好的幻灯片插件不容易,找到一款功能全并且使用很简单的幻灯片更不容易,今天为大家分享一款全能的幻灯片插件glide.js,也是我现在在使用的一款插件. jquery.glide.js是响应和触摸 ...

  6. bzoj 3283: 运算器 扩展Baby Step Giant Step && 快速阶乘

    3283: 运算器 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 184  Solved: 59[Submit][Status][Discuss] D ...

  7. POJ2103 Jackpot

    Description The Great Dodgers company has recently developed a brand-new playing machine. You put a ...

  8. matlab中 hold on 与hold off的用法

    matlab中 hold on 与hold off的用法 hold on 是当前轴及图形保持而不被刷新,准备接受此后将绘制 hold off 使当前轴及图形不在具备被刷新的性质 hold on 和ho ...

  9. http://www.cnblogs.com/xdp-gacl/p/3951952.html

    http://www.cnblogs.com/xdp-gacl/p/3951952.html http://www.cnblogs.com/kristain/articles/2409021.html

  10. [wikioi]乘积最大

    http://wikioi.com/problem/1017/ 划分型动态规划1.转移方程是:f[i][j]=max(f[k][j-1]*t[k+1][i]),f[i][j]表示前面i个字符加上j个乘 ...