摘要: 继续分析: if (pwprompt || pwfilename) get_set_pwd();由于我启动initdb的时候,没有设置口令相关的选项,故此略过。接下来: setup_depend();展开:就是一组sql问,送给 postgres 执行:cmd的值是:"/home/pgsql/project/bin/postgres" --single -F -O -c search_path=pg_catalog -c exit_on_error=true template1 >/dev/null/* * set up pg_depend */static void 阅读全文
posted @ 2013-07-08 17:01 健哥的数据花园 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 继续分析: /* * Make the per-database PG_VERSION for template1 only after init'ing it */ write_version_file("base/1");就是在base/1目录下,生成一个 PG_VERSION 文件。[pgsql@localhost 1]$ pwd/home/pgsql/DemoDir/base/1[pgsql@localhost 1]$ cat PG_VERSION9.1[pgsql@localhost 1]$ 接下来: /* Create the stuff we d... 阅读全文
posted @ 2013-07-08 16:34 健哥的数据花园 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 继续分析: /* Bootstrap template1 */ bootstrap_template1();展开:我这里读入的文件是:/home/pgsql/project/share/postgres.bki/* * run the BKI script in bootstrap mode to create template1 */static voidbootstrap_template1(void){ PG_CMD_DECL; char **line; char *talkargs = ""; char **bki_l... 阅读全文
posted @ 2013-07-08 15:44 健哥的数据花园 阅读(2019) 评论(0) 推荐(0) 编辑
摘要: 继续分析 /* Now create all the text config files */ setup_config();将其展开:实质就是,确定各种参数,分别写入 postgresql.conf 、pg_hba.conf、pg_indent.conf 文件。/* * set up all the config files */static voidsetup_config(void){ char **conflines; char repltok[100]; char path[MAXPGPATH]; fputs(... 阅读全文
posted @ 2013-07-08 13:45 健哥的数据花园 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 继续分析: /* Top level PG_VERSION is checked by bootstrapper, so make it first */ write_version_file(NULL);就是建立了一个 PG_VERSION的文件在我系统里,可以看到:[pgsql@localhost DemoDir]$ cat PG_VERSION9.1[pgsql@localhost DemoDir]$ 接下来:我先看看 set_null_conf 函数 /* Select suitable configuration settings */ set_null_co... 阅读全文
posted @ 2013-07-08 13:29 健哥的数据花园 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 继续分析,如下这段,因为条件不成立,被跳过: /* Create transaction log symlink, if required */ if (strcmp(xlog_dir, "") != 0) { fprintf(stderr,"In main function -----------------190\n"); char *linkloc; /* clean up xlog directory name, check it's absolute */ canonicalize_path(xlo... 阅读全文
posted @ 2013-07-08 09:16 健哥的数据花园 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 继续:下面的是定义信号处理函数。 /* * now we are starting to do real work, trap signals so we can clean up */ /* some of these are not valid on Windows */#ifdef SIGHUP pqsignal(SIGHUP, trapsig);#endif#ifdef SIGINT pqsignal(SIGINT, trapsig);#endif#ifdef SIGQUIT pqsignal(SIGQUIT, trapsig);#endi... 阅读全文
posted @ 2013-07-08 08:07 健哥的数据花园 阅读(622) 评论(0) 推荐(0) 编辑