PostgreSQL的 initdb 源代码分析之十九
继续分析:
setup_dictionary();
展开:
其中:
cmd 是:"/home/pgsql/project/bin/postgres" --single -F -O -c search_path=pg_catalog -c exit_on_error=true -j template1 >/dev/null
dictionary_file 是:/home/pgsql/project/share/snowball_create.sql
/* * load extra dictionaries (Snowball stemmers) */ static void setup_dictionary(void) { PG_CMD_DECL; char **line; char **conv_lines; fputs(_("creating dictionaries ... "), stdout); fflush(stdout); /* * We use -j here to avoid backslashing stuff */ snprintf(cmd, sizeof(cmd), "\"%s\" %s -j template1 >%s", backend_exec, backend_options, DEVNULL); PG_CMD_OPEN; conv_lines = readfile(dictionary_file); for (line = conv_lines; *line != NULL; line++) { PG_CMD_PUTS(*line); free(*line); } free(conv_lines); PG_CMD_CLOSE; check_ok(); }