[Groonga-commit] groonga/groonga [master] Support XXX -> ShortText/Text/LongText cast

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Feb 13 23:39:08 JST 2013


Kouhei Sutou	2013-02-13 23:39:08 +0900 (Wed, 13 Feb 2013)

  New Revision: 1a5205b8817977f54c6f930a8a77f22be122ff31
  https://github.com/groonga/groonga/commit/1a5205b8817977f54c6f930a8a77f22be122ff31

  Log:
    Support XXX -> ShortText/Text/LongText cast

  Modified files:
    lib/db.c

  Modified: lib/db.c (+14 -1)
===================================================================
--- lib/db.c    2013-02-13 23:07:29 +0900 (c1af71c)
+++ lib/db.c    2013-02-13 23:39:08 +0900 (803e748)
@@ -5075,7 +5075,20 @@ grn_obj_set_value(grn_ctx *ctx, grn_obj *obj, grn_id id,
       if (call_hook(ctx, obj, id, value, flags)) { goto exit; }
       switch (obj->header.flags & GRN_OBJ_COLUMN_TYPE_MASK) {
       case GRN_OBJ_COLUMN_SCALAR :
-        rc = grn_ja_put(ctx, (grn_ja *)obj, id, v, s, flags, NULL);
+        {
+          grn_obj buf;
+          if (range != value->header.domain) {
+            GRN_OBJ_INIT(&buf, GRN_BULK, 0, range);
+            if (grn_obj_cast(ctx, value, &buf, GRN_TRUE) == GRN_SUCCESS) {
+              v = GRN_BULK_HEAD(&buf);
+              s = GRN_BULK_VSIZE(&buf);
+            }
+          }
+          rc = grn_ja_put(ctx, (grn_ja *)obj, id, v, s, flags, NULL);
+          if (range != value->header.domain) {
+            grn_obj_close(ctx, &buf);
+          }
+        }
         break;
       case GRN_OBJ_COLUMN_VECTOR :
         {
-------------- next part --------------
HTML����������������������������...
다운로드 



More information about the Groonga-commit mailing list
Back to archive index