null+****@clear*****
null+****@clear*****
2012年 1月 6日 (金) 17:05:08 JST
Kouhei Sutou 2012-01-06 17:05:08 +0900 (Fri, 06 Jan 2012) New Revision: d01d3ced18741d942770144b80e5bd4aa4ad5492 Log: add --with-default-db-key configure option. dynamic DB key change environment variable is changed: GRN_CREATE_DB_USING_PAT -> GRN_DB_KEY=pat/GRN_DB_KEY=dat Modified files: configure.ac lib/db.c Modified: configure.ac (+9 -0) =================================================================== --- configure.ac 2012-01-06 16:01:45 +0900 (e997297) +++ configure.ac 2012-01-06 17:05:08 +0900 (90d18d2) @@ -366,6 +366,15 @@ AC_ARG_WITH(match_escalation_threshold, GRN_DEFAULT_MATCH_ESCALATION_THRESHOLD="0") AC_DEFINE_UNQUOTED(GRN_DEFAULT_MATCH_ESCALATION_THRESHOLD, $GRN_DEFAULT_MATCH_ESCALATION_THRESHOLD, "specified match escalation threshold") +# default DB key management algorithm +AC_ARG_WITH(default_db_key, + [AS_HELP_STRING([--with-default-db-key=ALGORITHM], + [specify groonga default DB key(pat/dat/auto)])], + GRN_DEFAULT_DB_KEY="$withval", + GRN_DEFAULT_DB_KEY="auto") +AC_DEFINE_UNQUOTED(GRN_DEFAULT_DB_KEY, "$GRN_DEFAULT_DB_KEY", + "specified default DB key management algorithm") + if test "$os_win32" != "yes"; then AC_CHECK_HEADERS(pthread.h) AC_CHECK_LIB(pthread, pthread_mutex_init, Modified: lib/db.c (+13 -2) =================================================================== --- lib/db.c 2012-01-06 16:01:45 +0900 (5a9588e) +++ lib/db.c 2012-01-06 17:05:08 +0900 (eb36bc4) @@ -102,8 +102,19 @@ grn_db_create(grn_ctx *ctx, const char *path, grn_db_create_optarg *optarg) GRN_API_ENTER; if (!path || strlen(path) <= PATH_MAX - 14) { if ((s = GRN_MALLOC(sizeof(grn_db)))) { - grn_bool use_pat_as_db_keys = (getenv("GRN_CREATE_DB_USING_PAT") && - !strcmp(getenv("GRN_CREATE_DB_USING_PAT"), "yes")); + grn_bool use_default_db_key = GRN_TRUE; + grn_bool use_pat_as_db_keys = GRN_FALSE; + if (getenv("GRN_DB_KEY")) { + if (!strcmp(getenv("GRN_DB_KEY"), "pat")) { + use_default_db_key = GRN_FALSE; + use_pat_as_db_keys = GRN_TRUE; + } else if (!strcmp(getenv("GRN_DB_KEY"), "dat")) { + use_default_db_key = GRN_FALSE; + } + } + if (use_default_db_key && !strcmp(GRN_DEFAULT_DB_KEY, "pat")) { + use_pat_as_db_keys = GRN_TRUE; + } grn_tiny_array_init(ctx, &s->values, sizeof(db_value), GRN_TINY_ARRAY_CLEAR| GRN_TINY_ARRAY_THREADSAFE|