From 72f5c93c958927ca8e939d809500b011a4fe40c5 Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Tue, 30 Jun 2015 16:59:06 +0900 Subject: [PATCH] Support offline index construction for reference vector --- lib/ii.c | 14 ++++++++++++++ .../load/index/offline/vector_int32.expected | 17 +++++++++++++++++ .../suite/load/index/offline/vector_int32.test | 14 ++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 test/command/suite/load/index/offline/vector_int32.expected create mode 100644 test/command/suite/load/index/offline/vector_int32.test diff --git a/lib/ii.c b/lib/ii.c index 57769a4ce5..388e056675 100644 --- a/lib/ii.c +++ b/lib/ii.c @@ -8011,6 +8011,20 @@ grn_ii_buffer_parse(grn_ctx *ctx, grn_ii_buffer *ii_buffer, grn_ii_buffer_tokenize(ctx, ii_buffer, rid, sid, 0, GRN_TEXT_VALUE(&rv), GRN_TEXT_LEN(&rv)); break; + case GRN_UVECTOR : + { + unsigned int i, size; + unsigned int element_size; + + size = grn_uvector_size(ctx, &rv); + element_size = grn_uvector_element_size(ctx, &rv); + for (i = 0; i < size; i++) { + grn_ii_buffer_tokenize(ctx, ii_buffer, rid, sid, 0, + GRN_BULK_HEAD(&rv) + (element_size * i), + element_size); + } + } + break; case GRN_VECTOR : if (rv.u.v.body) { int i; diff --git a/test/command/suite/load/index/offline/vector_int32.expected b/test/command/suite/load/index/offline/vector_int32.expected new file mode 100644 index 0000000000..08cda1f890 --- /dev/null +++ b/test/command/suite/load/index/offline/vector_int32.expected @@ -0,0 +1,17 @@ +table_create Entries TABLE_NO_KEY +[[0,0.0,0.0],true] +column_create Entries numbers COLUMN_VECTOR Int32 +[[0,0.0,0.0],true] +load --table Entries +[ +["numbers"], +[[18, 19, 20]], +[[100, 200]] +] +[[0,0.0,0.0],2] +table_create Numbers TABLE_PAT_KEY Int32 +[[0,0.0,0.0],true] +column_create Numbers entries_numbers COLUMN_INDEX Entries numbers +[[0,0.0,0.0],true] +select Numbers --output_columns _key +[[0,0.0,0.0],[[[5],[["_key","Int32"]],[18],[19],[20],[100],[200]]]] diff --git a/test/command/suite/load/index/offline/vector_int32.test b/test/command/suite/load/index/offline/vector_int32.test new file mode 100644 index 0000000000..260ce4e65b --- /dev/null +++ b/test/command/suite/load/index/offline/vector_int32.test @@ -0,0 +1,14 @@ +table_create Entries TABLE_NO_KEY +column_create Entries numbers COLUMN_VECTOR Int32 + +load --table Entries +[ +["numbers"], +[[18, 19, 20]], +[[100, 200]] +] + +table_create Numbers TABLE_PAT_KEY Int32 +column_create Numbers entries_numbers COLUMN_INDEX Entries numbers + +select Numbers --output_columns _key