[Groonga-commit] groonga/groonga [master] add --with-default-db-key configure option.

Back to archive index

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|




Groonga-commit メーリングリストの案内
Back to archive index