zoukankan      html  css  js  c++  java
  • PostgreSQL的 initdb 源代码分析之二十四

    继续分析:

        make_template0();

    展开:

    无需再作解释,就是创建template0数据库

    /*
     * copy template1 to template0
     */
    static void
    make_template0(void)
    {
        PG_CMD_DECL;
        const char **line;
        static const char *template0_setup[] = {
            "CREATE DATABASE template0;
    ",
            "UPDATE pg_database SET "
            "    datistemplate = 't', "
            "    datallowconn = 'f' "
            "    WHERE datname = 'template0';
    ",
    
            /*
             * We use the OID of template0 to determine lastsysoid
             */
            "UPDATE pg_database SET datlastsysoid = "
            "    (SELECT oid FROM pg_database "
            "    WHERE datname = 'template0');
    ",
    
            /*
             * Explicitly revoke public create-schema and create-temp-table
             * privileges in template1 and template0; else the latter would be on
             * by default
             */
            "REVOKE CREATE,TEMPORARY ON DATABASE template1 FROM public;
    ",
            "REVOKE CREATE,TEMPORARY ON DATABASE template0 FROM public;
    ",
    
            "COMMENT ON DATABASE template0 IS 'unmodifiable empty database';
    ",
    
            /*
             * Finally vacuum to clean up dead rows in pg_database
             */
            "VACUUM FULL pg_database;
    ",
            NULL
        };
    
        fputs(_("copying template1 to template0 ... "), stdout);
        fflush(stdout);
    
        snprintf(cmd, sizeof(cmd),
                 ""%s" %s template1 >%s",
                 backend_exec, backend_options,
                 DEVNULL);
    
        PG_CMD_OPEN;
    
        for (line = template0_setup; *line; line++)
            PG_CMD_PUTS(*line);
    
        PG_CMD_CLOSE;
    
        check_ok();
    }

     由此而知,在initdb工作的时候,是先创建的template1数据库,再创建template01数据库。

  • 相关阅读:
    按键
    bga植球
    数码管
    蜂鸣器
    LED流水灯
    sysTick定时器
    位带
    Android开发
    JavaScript修改src
    JSP笔记
  • 原文地址:https://www.cnblogs.com/gaojian/p/3179345.html
Copyright © 2011-2022 走看看