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|