deparse: better handling of deparse test database name
authorIan Barwick <ian@2ndquadrant.com>
Fri, 28 Nov 2014 02:46:33 +0000 (11:46 +0900)
committerIan Barwick <ian@2ndquadrant.com>
Fri, 28 Nov 2014 02:46:33 +0000 (11:46 +0900)
Use sensible (overrideable) defaultand make this a token which
can be passed to .source scripts.

src/test/regress/input/deparse_test.source
src/test/regress/output/deparse_test.source
src/test/regress/pg_regress.c
src/test/regress/pg_regress.h
src/test/regress/pg_regress_main.c

index 4aae06e25053348e2bbc88b539b94b11e20bfa00..049924fd4033ccbf9d58b66706d9a57289466ea3 100644 (file)
@@ -3,6 +3,6 @@
 ---
 
 \copy (SELECT command || ';' FROM deparse_test_commands ORDER BY id) TO './sql/deparse_dump.sql'
-\! @psqldir@/psql --dbname=reg2 < ./sql/deparse_dump.sql > /dev/null
+\! @psqldir@/psql --dbname=@deparse_test_db@ < ./sql/deparse_dump.sql > /dev/null
 
-\! @psqldir@/pg_dump --schema-only --no-owner --no-privileges -Fp reg2
+\! @psqldir@/pg_dump --schema-only --no-owner --no-privileges -Fp @deparse_test_db@
index ee14c9405b8bd6c7e266605176065efc9b829cf5..2d5b0725c82fcb057e91162e6c5d266e53594cd0 100644 (file)
@@ -2,8 +2,8 @@
 --- DEPARSE_TEST
 ---
 \copy (SELECT command || ';' FROM deparse_test_commands ORDER BY id) TO './sql/deparse_dump.sql'
-\! @psqldir@/psql --dbname=reg2 < ./sql/deparse_dump.sql > /dev/null
-\! @psqldir@/pg_dump --schema-only --no-owner --no-privileges -Fp reg2
+\! @psqldir@/psql --dbname=@deparse_test_db@ < ./sql/deparse_dump.sql > /dev/null
+\! @psqldir@/pg_dump --schema-only --no-owner --no-privileges -Fp @deparse_test_db@
 --
 -- PostgreSQL database dump
 --
index 93938f5db45e5eab6265e1ef53495f90cba0abeb..ce2c3c461e2073342029c71bbc041483f9684d86 100644 (file)
@@ -81,6 +81,7 @@ const char *pretty_diff_opts = "-w -C3";
 
 /* options settable from command line */
 _stringlist *dblist = NULL;
+char      *deparse_test_db = NULL;
 bool       debug = false;
 char      *inputdir = ".";
 char      *outputdir = ".";
@@ -588,6 +589,7 @@ convert_sourcefiles_in(char *source_subdir, char *dest_dir, char *dest_subdir, c
            replace_string(line, "@libdir@", dlpath);
            replace_string(line, "@DLSUFFIX@", DLSUFFIX);
            replace_string(line, "@psqldir@", psqldir);
+           replace_string(line, "@deparse_test_db@", deparse_test_db);
            fputs(line, outfile);
        }
        fclose(infile);
@@ -1960,6 +1962,8 @@ help(void)
    printf(_("Options:\n"));
    printf(_("  --create-role=ROLE        create the specified role before testing\n"));
    printf(_("  --dbname=DB               use database DB (default \"regression\")\n"));
+   printf(_("  --dbname-deparse=DB       use database DB for DDL deparse test (default\n"));
+   printf(_("                            \"regression_deparse\")\n"));
    printf(_("  --debug                   turn on debug mode in programs that are run\n"));
    printf(_("  --dlpath=DIR              look for dynamic libraries in DIR\n"));
    printf(_("  --encoding=ENCODING       use ENCODING as the encoding\n"));
@@ -2024,6 +2028,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
        {"launcher", required_argument, NULL, 21},
        {"load-extension", required_argument, NULL, 22},
        {"extra-install", required_argument, NULL, 23},
+       {"dbname-deparse", required_argument, NULL, 24},
        {NULL, 0, NULL, 0}
    };
 
@@ -2138,6 +2143,9 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
            case 23:
                add_stringlist_item(&extra_install, optarg);
                break;
+           case 24:
+               deparse_test_db = strdup(optarg);
+               break;
            default:
                /* getopt_long already emitted a complaint */
                fprintf(stderr, _("\nTry \"%s -h\" for more information.\n"),
@@ -2432,6 +2440,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
    {
        for (sl = dblist; sl; sl = sl->next)
            create_database(sl->str);
+       create_database(deparse_test_db);
        for (sl = extraroles; sl; sl = sl->next)
            create_role(sl->str, dblist);
    }
index 942d761a114c0c2e3ed834e7b52c9e45f89841c6..c1f38baed5c879cf764996e4cda12b1059d19839 100644 (file)
@@ -38,6 +38,7 @@ extern char *datadir;
 extern char *host_platform;
 
 extern _stringlist *dblist;
+extern char *deparse_test_db;
 extern bool debug;
 extern char *inputdir;
 extern char *outputdir;
index 22197aa17d668170a7bad0845c451f6e5b7feff3..fb5d00ce23aba261681d902b97ee61fb5a7f82f5 100644 (file)
@@ -88,6 +88,7 @@ psql_init(int argc, char **argv)
 {
    /* set default regression database name */
    add_stringlist_item(&dblist, "regression");
+   deparse_test_db = "regression_deparse";
 }
 
 int