isomorfeus-ferret 0.17.2 → 0.17.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/ext/isomorfeus_ferret_ext/benchmark.c +9 -20
  3. data/ext/isomorfeus_ferret_ext/benchmarks_all.h +1 -2
  4. data/ext/isomorfeus_ferret_ext/bm_hash.c +1 -2
  5. data/ext/isomorfeus_ferret_ext/brotli_dec_decode.c +4 -2
  6. data/ext/isomorfeus_ferret_ext/brotli_enc_encode.c +3 -2
  7. data/ext/isomorfeus_ferret_ext/frb_analysis.c +4 -5
  8. data/ext/isomorfeus_ferret_ext/frb_field_info.c +3 -4
  9. data/ext/isomorfeus_ferret_ext/frb_index.c +118 -125
  10. data/ext/isomorfeus_ferret_ext/frb_lazy_doc.c +14 -16
  11. data/ext/isomorfeus_ferret_ext/frb_search.c +31 -23
  12. data/ext/isomorfeus_ferret_ext/frb_store.c +27 -13
  13. data/ext/isomorfeus_ferret_ext/frb_utils.c +3 -6
  14. data/ext/isomorfeus_ferret_ext/frt_analysis.c +39 -46
  15. data/ext/isomorfeus_ferret_ext/frt_analysis.h +9 -9
  16. data/ext/isomorfeus_ferret_ext/frt_array.c +11 -22
  17. data/ext/isomorfeus_ferret_ext/frt_bitvector.h +3 -6
  18. data/ext/isomorfeus_ferret_ext/frt_doc_field.c +87 -0
  19. data/ext/isomorfeus_ferret_ext/frt_doc_field.h +26 -0
  20. data/ext/isomorfeus_ferret_ext/frt_document.c +4 -97
  21. data/ext/isomorfeus_ferret_ext/frt_document.h +2 -27
  22. data/ext/isomorfeus_ferret_ext/frt_except.c +8 -6
  23. data/ext/isomorfeus_ferret_ext/frt_except.h +1 -2
  24. data/ext/isomorfeus_ferret_ext/frt_field_index.c +13 -32
  25. data/ext/isomorfeus_ferret_ext/frt_field_index.h +0 -6
  26. data/ext/isomorfeus_ferret_ext/frt_field_info.c +69 -0
  27. data/ext/isomorfeus_ferret_ext/frt_field_info.h +49 -0
  28. data/ext/isomorfeus_ferret_ext/frt_field_infos.c +196 -0
  29. data/ext/isomorfeus_ferret_ext/frt_field_infos.h +35 -0
  30. data/ext/isomorfeus_ferret_ext/frt_global.c +10 -4
  31. data/ext/isomorfeus_ferret_ext/frt_global.h +11 -15
  32. data/ext/isomorfeus_ferret_ext/frt_hash.c +8 -8
  33. data/ext/isomorfeus_ferret_ext/frt_hash.h +1 -2
  34. data/ext/isomorfeus_ferret_ext/frt_hashset.c +20 -40
  35. data/ext/isomorfeus_ferret_ext/frt_hashset.h +1 -2
  36. data/ext/isomorfeus_ferret_ext/frt_helper.c +7 -15
  37. data/ext/isomorfeus_ferret_ext/frt_in_stream.c +35 -45
  38. data/ext/isomorfeus_ferret_ext/frt_in_stream.h +3 -2
  39. data/ext/isomorfeus_ferret_ext/frt_ind.c +20 -38
  40. data/ext/isomorfeus_ferret_ext/frt_index.c +292 -790
  41. data/ext/isomorfeus_ferret_ext/frt_index.h +1 -102
  42. data/ext/isomorfeus_ferret_ext/frt_lang.c +5 -10
  43. data/ext/isomorfeus_ferret_ext/frt_lazy_doc.c +3 -3
  44. data/ext/isomorfeus_ferret_ext/frt_lazy_doc.h +1 -1
  45. data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.c +18 -25
  46. data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.h +5 -5
  47. data/ext/isomorfeus_ferret_ext/frt_mdbx_store.c +102 -70
  48. data/ext/isomorfeus_ferret_ext/frt_mempool.c +8 -16
  49. data/ext/isomorfeus_ferret_ext/frt_multimapper.c +23 -46
  50. data/ext/isomorfeus_ferret_ext/frt_multimapper.h +4 -8
  51. data/ext/isomorfeus_ferret_ext/frt_out_stream.c +31 -43
  52. data/ext/isomorfeus_ferret_ext/frt_out_stream.h +2 -2
  53. data/ext/isomorfeus_ferret_ext/frt_posh.c +6 -819
  54. data/ext/isomorfeus_ferret_ext/frt_posh.h +0 -57
  55. data/ext/isomorfeus_ferret_ext/frt_priorityqueue.c +11 -22
  56. data/ext/isomorfeus_ferret_ext/frt_priorityqueue.h +1 -2
  57. data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +85 -171
  58. data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +8 -16
  59. data/ext/isomorfeus_ferret_ext/frt_q_multi_term.c +1 -2
  60. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +49 -98
  61. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +52 -104
  62. data/ext/isomorfeus_ferret_ext/frt_q_range.c +6 -12
  63. data/ext/isomorfeus_ferret_ext/frt_q_span.c +113 -226
  64. data/ext/isomorfeus_ferret_ext/frt_q_wildcard.c +1 -2
  65. data/ext/isomorfeus_ferret_ext/frt_ram_store.c +134 -85
  66. data/ext/isomorfeus_ferret_ext/frt_search.c +82 -164
  67. data/ext/isomorfeus_ferret_ext/frt_similarity.c +11 -22
  68. data/ext/isomorfeus_ferret_ext/frt_similarity.h +1 -2
  69. data/ext/isomorfeus_ferret_ext/frt_store.c +13 -25
  70. data/ext/isomorfeus_ferret_ext/frt_store.h +86 -52
  71. data/ext/isomorfeus_ferret_ext/frt_term_vectors.c +8 -16
  72. data/ext/isomorfeus_ferret_ext/frt_win32.h +5 -10
  73. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +12 -11
  74. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.h +11 -13
  75. data/ext/isomorfeus_ferret_ext/lz4.c +422 -195
  76. data/ext/isomorfeus_ferret_ext/lz4.h +114 -46
  77. data/ext/isomorfeus_ferret_ext/lz4frame.c +421 -242
  78. data/ext/isomorfeus_ferret_ext/lz4frame.h +122 -53
  79. data/ext/isomorfeus_ferret_ext/lz4hc.c +127 -111
  80. data/ext/isomorfeus_ferret_ext/lz4hc.h +14 -14
  81. data/ext/isomorfeus_ferret_ext/lz4xxhash.h +1 -1
  82. data/ext/isomorfeus_ferret_ext/mdbx.c +3762 -2526
  83. data/ext/isomorfeus_ferret_ext/mdbx.h +115 -70
  84. data/ext/isomorfeus_ferret_ext/test.c +40 -87
  85. data/ext/isomorfeus_ferret_ext/test.h +3 -6
  86. data/ext/isomorfeus_ferret_ext/test_1710.c +11 -13
  87. data/ext/isomorfeus_ferret_ext/test_analysis.c +32 -64
  88. data/ext/isomorfeus_ferret_ext/test_array.c +6 -12
  89. data/ext/isomorfeus_ferret_ext/test_bitvector.c +12 -24
  90. data/ext/isomorfeus_ferret_ext/test_document.c +23 -33
  91. data/ext/isomorfeus_ferret_ext/test_except.c +10 -21
  92. data/ext/isomorfeus_ferret_ext/test_fields.c +62 -68
  93. data/ext/isomorfeus_ferret_ext/test_file_deleter.c +15 -23
  94. data/ext/isomorfeus_ferret_ext/test_filter.c +17 -27
  95. data/ext/isomorfeus_ferret_ext/test_global.c +14 -29
  96. data/ext/isomorfeus_ferret_ext/test_hash.c +19 -38
  97. data/ext/isomorfeus_ferret_ext/test_hashset.c +8 -16
  98. data/ext/isomorfeus_ferret_ext/test_helper.c +4 -8
  99. data/ext/isomorfeus_ferret_ext/test_highlighter.c +16 -28
  100. data/ext/isomorfeus_ferret_ext/test_index.c +277 -487
  101. data/ext/isomorfeus_ferret_ext/test_lang.c +7 -14
  102. data/ext/isomorfeus_ferret_ext/test_mdbx_store.c +2 -5
  103. data/ext/isomorfeus_ferret_ext/test_mempool.c +5 -10
  104. data/ext/isomorfeus_ferret_ext/test_multimapper.c +3 -6
  105. data/ext/isomorfeus_ferret_ext/test_priorityqueue.c +9 -18
  106. data/ext/isomorfeus_ferret_ext/test_q_const_score.c +4 -6
  107. data/ext/isomorfeus_ferret_ext/test_q_filtered.c +3 -4
  108. data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +9 -15
  109. data/ext/isomorfeus_ferret_ext/test_q_parser.c +8 -16
  110. data/ext/isomorfeus_ferret_ext/test_q_span.c +19 -35
  111. data/ext/isomorfeus_ferret_ext/test_ram_store.c +14 -13
  112. data/ext/isomorfeus_ferret_ext/test_search.c +60 -109
  113. data/ext/isomorfeus_ferret_ext/test_segments.c +8 -13
  114. data/ext/isomorfeus_ferret_ext/test_similarity.c +2 -4
  115. data/ext/isomorfeus_ferret_ext/test_sort.c +14 -24
  116. data/ext/isomorfeus_ferret_ext/test_store.c +96 -115
  117. data/ext/isomorfeus_ferret_ext/test_term.c +9 -15
  118. data/ext/isomorfeus_ferret_ext/test_term_vectors.c +9 -14
  119. data/ext/isomorfeus_ferret_ext/test_test.c +4 -8
  120. data/ext/isomorfeus_ferret_ext/test_threading.c +14 -20
  121. data/ext/isomorfeus_ferret_ext/testhelper.c +11 -21
  122. data/ext/isomorfeus_ferret_ext/testhelper.h +1 -1
  123. data/ext/isomorfeus_ferret_ext/tests_all.h +1 -2
  124. data/lib/isomorfeus/ferret/index/index.rb +1 -1
  125. data/lib/isomorfeus/ferret/version.rb +1 -1
  126. metadata +24 -4
@@ -3,27 +3,23 @@
3
3
 
4
4
  typedef void *(*alloc_ft)(size_t);
5
5
 
6
- static void huge_emalloc(void *data)
7
- {
6
+ static void huge_emalloc(void *data) {
8
7
  (void)data;
9
8
  frt_emalloc((size_t)-1);
10
9
  }
11
10
 
12
- static void huge_ecalloc(void *data)
13
- {
11
+ static void huge_ecalloc(void *data) {
14
12
  (void)data;
15
13
  frt_ecalloc((size_t)-1);
16
14
  }
17
15
 
18
- static void huge_erealloc(void *data)
19
- {
16
+ static void huge_erealloc(void *data) {
20
17
  char *p = NULL;
21
18
  (void)data;
22
19
  frt_erealloc(p, (size_t)-1);
23
20
  }
24
21
 
25
- static void test_emalloc(TestCase *tc, void *data)
26
- {
22
+ static void test_emalloc(TestCase *tc, void *data) {
27
23
  char *p;
28
24
  (void)data; /* suppress warning */
29
25
 
@@ -34,8 +30,7 @@ static void test_emalloc(TestCase *tc, void *data)
34
30
  Araise(FRT_MEM_ERROR, huge_emalloc, NULL);
35
31
  }
36
32
 
37
- static void test_ecalloc(TestCase *tc, void *data)
38
- {
33
+ static void test_ecalloc(TestCase *tc, void *data) {
39
34
  int i;
40
35
  char *p;
41
36
  (void)data; /* suppress warning */
@@ -50,8 +45,7 @@ static void test_ecalloc(TestCase *tc, void *data)
50
45
  Araise(FRT_MEM_ERROR, huge_ecalloc, NULL);
51
46
  }
52
47
 
53
- static void test_erealloc(TestCase *tc, void *data)
54
- {
48
+ static void test_erealloc(TestCase *tc, void *data) {
55
49
  char *p = NULL;
56
50
  (void)data; /* suppress warning */
57
51
 
@@ -62,8 +56,7 @@ static void test_erealloc(TestCase *tc, void *data)
62
56
  Araise(FRT_MEM_ERROR, huge_erealloc, NULL);
63
57
  }
64
58
 
65
- TestSuite *ts_lang(TestSuite *suite)
66
- {
59
+ TestSuite *ts_lang(TestSuite *suite) {
67
60
  suite = ADD_SUITE(suite);
68
61
 
69
62
  tst_run_test(suite, test_emalloc, NULL);
@@ -6,12 +6,9 @@
6
6
  * Test a MDBX store
7
7
  */
8
8
  TestSuite *ts_mdbx_store(TestSuite *suite) {
9
- #if defined POSH_OS_WIN32 || defined POSH_OS_WIN64
10
- FrtStore *store = frt_open_mdbx_store(".\\test\\testdir\\mdbx_store");
11
- #else
12
9
  FrtStore *store = frt_open_mdbx_store("./test/testdir/mdbx_store");
13
- #endif
14
- store->clear(store);
10
+ store->create_folder(store, segm_idx_name);
11
+ store->clear(store, segm_idx_name);
15
12
  suite = ADD_SUITE(suite);
16
13
  create_test_store_suite(suite, store);
17
14
  frt_store_close(store);
@@ -3,8 +3,7 @@
3
3
  #include "frt_mempool.h"
4
4
 
5
5
 
6
- static void test_mp_default_capa(TestCase *tc, void *data)
7
- {
6
+ static void test_mp_default_capa(TestCase *tc, void *data) {
8
7
  FrtMemoryPool *mp = frt_mp_new();
9
8
  (void)data;
10
9
  Aiequal(FRT_MP_INIT_CAPA, mp->buf_capa);
@@ -19,8 +18,7 @@ struct MemChecker {
19
18
  #define NUM_ALLOCS 10000
20
19
  #define MAX_SIZE 100
21
20
 
22
- static void do_mp_test(TestCase *tc, FrtMemoryPool *mp)
23
- {
21
+ static void do_mp_test(TestCase *tc, FrtMemoryPool *mp) {
24
22
  int i, j;
25
23
  int max_necessary;
26
24
  int total_bytes = 0;
@@ -57,8 +55,7 @@ static void do_mp_test(TestCase *tc, FrtMemoryPool *mp)
57
55
  }
58
56
  }
59
57
 
60
- static void test_mp_dup(TestCase *tc, void *data)
61
- {
58
+ static void test_mp_dup(TestCase *tc, void *data) {
62
59
  FrtMemoryPool *mp = frt_mp_new_capa(2000, 16);
63
60
  (void)data;
64
61
 
@@ -68,8 +65,7 @@ static void test_mp_dup(TestCase *tc, void *data)
68
65
  frt_mp_destroy(mp);
69
66
  }
70
67
 
71
- static void test_mp_alloc(TestCase *tc, void *data)
72
- {
68
+ static void test_mp_alloc(TestCase *tc, void *data) {
73
69
  FrtMemoryPool *mp = frt_mp_new_capa(20, 16);
74
70
  char *t;
75
71
  (void)data;
@@ -90,8 +86,7 @@ static void test_mp_alloc(TestCase *tc, void *data)
90
86
  frt_mp_destroy(mp);
91
87
  }
92
88
 
93
- TestSuite *ts_mem_pool(TestSuite *suite)
94
- {
89
+ TestSuite *ts_mem_pool(TestSuite *suite) {
95
90
  suite = ADD_SUITE(suite);
96
91
 
97
92
  tst_run_test(suite, test_mp_default_capa, NULL);
@@ -2,8 +2,7 @@
2
2
  #include "frt_multimapper.h"
3
3
  #include "test.h"
4
4
 
5
- static void test_multimapper(TestCase *tc, void *data)
6
- {
5
+ static void test_multimapper(TestCase *tc, void *data) {
7
6
  char text[] = "abc cabc abd cabcd";
8
7
  char dest[1000];
9
8
  FrtMultiMapper *mapper = frt_mulmap_new();
@@ -29,8 +28,7 @@ static void test_multimapper(TestCase *tc, void *data)
29
28
  frt_mulmap_destroy(mapper);
30
29
  }
31
30
 
32
- static void test_multimapper_utf8(TestCase *tc, void *data)
33
- {
31
+ static void test_multimapper_utf8(TestCase *tc, void *data) {
34
32
  char text[] = "zàáâãäåāăz";
35
33
  char dest[1000];
36
34
  char *dest_dynamic;
@@ -53,8 +51,7 @@ static void test_multimapper_utf8(TestCase *tc, void *data)
53
51
  frt_mulmap_destroy(mapper);
54
52
  }
55
53
 
56
- TestSuite *ts_multimapper(TestSuite *suite)
57
- {
54
+ TestSuite *ts_multimapper(TestSuite *suite) {
58
55
  suite = ADD_SUITE(suite);
59
56
 
60
57
  tst_run_test(suite, test_multimapper, NULL);
@@ -7,21 +7,18 @@
7
7
  * Simple string less than function used for testing adding of strings to the
8
8
  * priority queue.
9
9
  */
10
- static bool str_lt(void *p1, void *p2)
11
- {
10
+ static bool str_lt(void *p1, void *p2) {
12
11
  return (strcmp((char *) p1, (char *) p2) < 0);
13
12
  }
14
13
 
15
- static bool str_lt_rev(void *p1, void *p2)
16
- {
14
+ static bool str_lt_rev(void *p1, void *p2) {
17
15
  return (strcmp((char *) p1, (char *) p2) > 0);
18
16
  }
19
17
 
20
18
  /**
21
19
  * Test basic FrtPriorityQueue functions.
22
20
  */
23
- static void test_pq(TestCase *tc, void *data)
24
- {
21
+ static void test_pq(TestCase *tc, void *data) {
25
22
  char *tmp;
26
23
  FrtPriorityQueue *pq = frt_pq_new(4, (frt_lt_ft)&str_lt, &free);
27
24
  (void)data; /* suppress unused argument warning */
@@ -58,8 +55,7 @@ static void test_pq(TestCase *tc, void *data)
58
55
  /**
59
56
  * Test basic FrtPriorityQueue functions.
60
57
  */
61
- static void test_pq_reverse(TestCase *tc, void *data)
62
- {
58
+ static void test_pq_reverse(TestCase *tc, void *data) {
63
59
  char *tmp;
64
60
  FrtPriorityQueue *pq = frt_pq_new(4, (frt_lt_ft)&str_lt_rev, &free);
65
61
  (void)data; /* suppress unused argument warning */
@@ -97,8 +93,7 @@ static void test_pq_reverse(TestCase *tc, void *data)
97
93
  * Free mock used to test that the FrtPriorityQueue is being destroyed correctly
98
94
  * including it's elements
99
95
  */
100
- static void pq_free_mock(void *p)
101
- {
96
+ static void pq_free_mock(void *p) {
102
97
  char *str = (char *) p;
103
98
  strcpy(str, "free");
104
99
  }
@@ -106,8 +101,7 @@ static void pq_free_mock(void *p)
106
101
  /**
107
102
  * Test pq_clear function
108
103
  */
109
- static void test_pq_clear(TestCase *tc, void *data)
110
- {
104
+ static void test_pq_clear(TestCase *tc, void *data) {
111
105
  char word1[10] = "word1";
112
106
  char word2[10] = "word2";
113
107
  char word3[10] = "word3";
@@ -131,8 +125,7 @@ static void test_pq_clear(TestCase *tc, void *data)
131
125
  * insert more than the PriorityQueue's capacity, the extra elements that drop
132
126
  * off the bottom are destroyed.
133
127
  */
134
- static void test_pq_insert_overflow(TestCase *tc, void *data)
135
- {
128
+ static void test_pq_insert_overflow(TestCase *tc, void *data) {
136
129
  char word1[10] = "word1";
137
130
  char word2[10] = "word2";
138
131
  char word3[10] = "word3";
@@ -168,8 +161,7 @@ static void test_pq_insert_overflow(TestCase *tc, void *data)
168
161
  * to really stress test PriorityQueue.
169
162
  */
170
163
  #define PQ_STRESS_SIZE 1000
171
- static void stress_pq(TestCase *tc, void *data)
172
- {
164
+ static void stress_pq(TestCase *tc, void *data) {
173
165
  int i;
174
166
  char buf[100], *prev, *curr;
175
167
  FrtPriorityQueue *pq = frt_pq_new(PQ_STRESS_SIZE, (frt_lt_ft)&str_lt, &free);
@@ -199,8 +191,7 @@ static void stress_pq(TestCase *tc, void *data)
199
191
  /**
200
192
  * PriorityQueue's test suite
201
193
  */
202
- TestSuite *ts_priorityqueue(TestSuite *suite)
203
- {
194
+ TestSuite *ts_priorityqueue(TestSuite *suite) {
204
195
  suite = ADD_SUITE(suite);
205
196
 
206
197
  tst_run_test(suite, test_pq, NULL);
@@ -7,8 +7,7 @@ static ID num;
7
7
 
8
8
  extern void prepare_filter_index(FrtStore *store);
9
9
 
10
- static void test_const_score_query(TestCase *tc, void *data)
11
- {
10
+ static void test_const_score_query(TestCase *tc, void *data) {
12
11
  FrtSearcher *searcher = (FrtSearcher *)data;
13
12
  FrtQuery *q;
14
13
  q = frt_csq_new_nr(frt_rfilt_new(num, "2", "6", true, true));
@@ -37,8 +36,7 @@ static void test_const_score_query(TestCase *tc, void *data)
37
36
  frt_q_deref(q);
38
37
  }
39
38
 
40
- static void test_const_score_query_hash(TestCase *tc, void *data)
41
- {
39
+ static void test_const_score_query_hash(TestCase *tc, void *data) {
42
40
  FrtFilter *f;
43
41
  FrtQuery *q1, *q2;
44
42
  (void)data;
@@ -63,9 +61,9 @@ static void test_const_score_query_hash(TestCase *tc, void *data)
63
61
  frt_q_deref(q1);
64
62
  }
65
63
 
66
- TestSuite *ts_q_const_score(TestSuite *suite)
67
- {
64
+ TestSuite *ts_q_const_score(TestSuite *suite) {
68
65
  FrtStore *store = frt_open_ram_store(NULL);
66
+ store->create_folder(store, segm_idx_name);
69
67
  FrtIndexReader *ir;
70
68
  FrtSearcher *searcher;
71
69
 
@@ -7,8 +7,7 @@ static ID num, flipflop;
7
7
 
8
8
  extern void prepare_filter_index(FrtStore *store);
9
9
 
10
- static void test_filtered_query(TestCase *tc, void *data)
11
- {
10
+ static void test_filtered_query(TestCase *tc, void *data) {
12
11
  FrtSearcher *searcher = (FrtSearcher *)data;
13
12
  FrtQuery *q;
14
13
  q = frt_fq_new(frt_maq_new(), frt_rfilt_new(num, "2", "6", true, true));
@@ -40,9 +39,9 @@ static void test_filtered_query(TestCase *tc, void *data)
40
39
  frt_q_deref(q);
41
40
  }
42
41
 
43
- TestSuite *ts_q_filtered(TestSuite *suite)
44
- {
42
+ TestSuite *ts_q_filtered(TestSuite *suite) {
45
43
  FrtStore *store = frt_open_ram_store(NULL);
44
+ store->create_folder(store, segm_idx_name);
46
45
  FrtIndexReader *ir;
47
46
  FrtSearcher *searcher;
48
47
 
@@ -7,26 +7,23 @@
7
7
 
8
8
  static ID field;
9
9
 
10
- static void add_doc(const char *text, FrtIndexWriter *iw)
11
- {
10
+ static void add_doc(const char *text, FrtIndexWriter *iw) {
12
11
  FrtDocument *doc = frt_doc_new();
13
12
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
14
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(field), (char *)text, enc));
13
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(field), text, enc));
15
14
  frt_iw_add_doc(iw, doc);
16
15
  frt_doc_destroy(doc);
17
16
  }
18
17
 
19
18
  void check_to_s(TestCase *tc, FrtQuery *query, ID field, const char *q_str);
20
19
 
21
- static void do_prefix_test(TestCase *tc, FrtSearcher *searcher, const char *qstr, const char *expected_hits, int pre_len, float min_sim)
22
- {
20
+ static void do_prefix_test(TestCase *tc, FrtSearcher *searcher, const char *qstr, const char *expected_hits, int pre_len, float min_sim) {
23
21
  FrtQuery *fq = frt_fuzq_new_conf(field, qstr, min_sim, pre_len, 10);
24
22
  tst_check_hits(tc, searcher, fq, expected_hits, -1);
25
23
  frt_q_deref(fq);
26
24
  }
27
25
 
28
- static void test_fuzziness(TestCase *tc, void *data)
29
- {
26
+ static void test_fuzziness(TestCase *tc, void *data) {
30
27
  FrtStore *store = (FrtStore *)data;
31
28
  FrtIndexWriter *iw;
32
29
  FrtIndexReader *ir;
@@ -113,8 +110,7 @@ static void test_fuzziness(TestCase *tc, void *data)
113
110
  frt_ir_close(ir);
114
111
  }
115
112
 
116
- static void test_fuzziness_long(TestCase *tc, void *data)
117
- {
113
+ static void test_fuzziness_long(TestCase *tc, void *data) {
118
114
  FrtStore *store = (FrtStore *)data;
119
115
  FrtIndexWriter *iw;
120
116
  FrtSearcher *sea;
@@ -172,8 +168,7 @@ static void test_fuzziness_long(TestCase *tc, void *data)
172
168
  /**
173
169
  * Test query->to_s functionality
174
170
  */
175
- static void test_fuzzy_query_to_s(TestCase *tc, void *data)
176
- {
171
+ static void test_fuzzy_query_to_s(TestCase *tc, void *data) {
177
172
  FrtQuery *q;
178
173
  (void)data;
179
174
 
@@ -192,8 +187,7 @@ static void test_fuzzy_query_to_s(TestCase *tc, void *data)
192
187
  /**
193
188
  * Test query hashing functionality
194
189
  */
195
- static void test_fuzzy_query_hash(TestCase *tc, void *data)
196
- {
190
+ static void test_fuzzy_query_hash(TestCase *tc, void *data) {
197
191
  FrtQuery *q1, *q2;
198
192
  (void)data;
199
193
 
@@ -228,9 +222,9 @@ static void test_fuzzy_query_hash(TestCase *tc, void *data)
228
222
  frt_q_deref(q1);
229
223
  }
230
224
 
231
- TestSuite *ts_q_fuzzy(TestSuite *suite)
232
- {
225
+ TestSuite *ts_q_fuzzy(TestSuite *suite) {
233
226
  FrtStore *store = frt_open_ram_store(NULL);
227
+ store->create_folder(store, segm_idx_name);
234
228
 
235
229
  field = rb_intern("field");
236
230
 
@@ -16,8 +16,7 @@ typedef struct QPTestPair {
16
16
  free(qres);\
17
17
  } while (0);
18
18
 
19
- static void test_q_parser(TestCase *tc, void *data)
20
- {
19
+ static void test_q_parser(TestCase *tc, void *data) {
21
20
  int i;
22
21
  FrtAnalyzer *analyzer = frt_letter_analyzer_new(true);
23
22
  FrtQParser *parser;
@@ -185,8 +184,7 @@ static void test_q_parser(TestCase *tc, void *data)
185
184
  frt_qp_destroy(parser);
186
185
  }
187
186
 
188
- static void test_q_parser_standard_analyzer(TestCase *tc, void *data)
189
- {
187
+ static void test_q_parser_standard_analyzer(TestCase *tc, void *data) {
190
188
  int i;
191
189
  FrtAnalyzer *analyzer = frt_standard_analyzer_new(true);
192
190
  FrtQParser *parser;
@@ -352,8 +350,7 @@ static void test_q_parser_standard_analyzer(TestCase *tc, void *data)
352
350
  frt_qp_destroy(parser);
353
351
  }
354
352
 
355
- static void test_qp_clean_str(TestCase *tc, void *data)
356
- {
353
+ static void test_qp_clean_str(TestCase *tc, void *data) {
357
354
  int i;
358
355
  QPTestPair pairs[] = {
359
356
  {"", ""},
@@ -382,8 +379,7 @@ static void test_qp_clean_str(TestCase *tc, void *data)
382
379
  }
383
380
  }
384
381
 
385
- static void test_qp_bad_queries(TestCase *tc, void *data)
386
- {
382
+ static void test_qp_bad_queries(TestCase *tc, void *data) {
387
383
  int i;
388
384
  FrtQParser *parser;
389
385
  QPTestPair pairs[] = {
@@ -413,8 +409,7 @@ static void test_qp_bad_queries(TestCase *tc, void *data)
413
409
  frt_qp_destroy(parser);
414
410
  }
415
411
 
416
- static void test_mb_qp_bad_queries(TestCase *tc, void *data)
417
- {
412
+ static void test_mb_qp_bad_queries(TestCase *tc, void *data) {
418
413
  int i;
419
414
  FrtQParser *parser;
420
415
  QPTestPair pairs[] = {
@@ -444,8 +439,7 @@ static void test_mb_qp_bad_queries(TestCase *tc, void *data)
444
439
  frt_qp_destroy(parser);
445
440
  }
446
441
 
447
- static void test_qp_prefix_query(TestCase *tc, void *data)
448
- {
442
+ static void test_qp_prefix_query(TestCase *tc, void *data) {
449
443
  FrtQParser *parser;
450
444
  FrtQuery *q;
451
445
  (void)data;
@@ -469,8 +463,7 @@ static void test_qp_prefix_query(TestCase *tc, void *data)
469
463
  frt_qp_destroy(parser);
470
464
  }
471
465
 
472
- static void test_qp_keyword_switch(TestCase *tc, void *data)
473
- {
466
+ static void test_qp_keyword_switch(TestCase *tc, void *data) {
474
467
  FrtQParser *parser;
475
468
  (void)data;
476
469
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
@@ -486,8 +479,7 @@ static void test_qp_keyword_switch(TestCase *tc, void *data)
486
479
  frt_qp_destroy(parser);
487
480
  }
488
481
 
489
- TestSuite *ts_q_parser(TestSuite *suite)
490
- {
482
+ TestSuite *ts_q_parser(TestSuite *suite) {
491
483
  suite = ADD_SUITE(suite);
492
484
 
493
485
  tst_run_test(suite, test_q_parser, NULL);
@@ -14,18 +14,16 @@
14
14
 
15
15
  static ID field;
16
16
 
17
- static void add_doc(const char *text, FrtIndexWriter *iw)
18
- {
17
+ static void add_doc(const char *text, FrtIndexWriter *iw) {
19
18
  FrtDocument *doc = frt_doc_new();
20
19
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
21
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(field), (char *)text, enc));
20
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(field), text, enc));
22
21
  frt_iw_add_doc(iw, doc);
23
22
  frt_doc_destroy(doc);
24
23
  }
25
24
 
26
25
 
27
- static void span_test_setup(FrtStore *store)
28
- {
26
+ static void span_test_setup(FrtStore *store) {
29
27
  const char **d;
30
28
  FrtIndexWriter *iw;
31
29
  FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM);
@@ -74,8 +72,7 @@ static void span_test_setup(FrtStore *store)
74
72
  frt_iw_close(iw);
75
73
  }
76
74
 
77
- static void test_span_term(TestCase *tc, void *data)
78
- {
75
+ static void test_span_term(TestCase *tc, void *data) {
79
76
  FrtStore *store = (FrtStore *)data;
80
77
  FrtIndexReader *ir;
81
78
  FrtSearcher *sea;
@@ -103,8 +100,7 @@ static void test_span_term(TestCase *tc, void *data)
103
100
  frt_ir_close(ir);
104
101
  }
105
102
 
106
- static void test_span_term_hash(TestCase *tc, void *data)
107
- {
103
+ static void test_span_term_hash(TestCase *tc, void *data) {
108
104
  FrtQuery *q1, *q2;
109
105
  (void)data;
110
106
 
@@ -129,8 +125,7 @@ static void test_span_term_hash(TestCase *tc, void *data)
129
125
  frt_q_deref(q1);
130
126
  }
131
127
 
132
- static void test_span_multi_term(TestCase *tc, void *data)
133
- {
128
+ static void test_span_multi_term(TestCase *tc, void *data) {
134
129
  FrtStore *store = (FrtStore *)data;
135
130
  FrtIndexReader *ir;
136
131
  FrtSearcher *sea;
@@ -173,8 +168,7 @@ static void test_span_multi_term(TestCase *tc, void *data)
173
168
  frt_ir_close(ir);
174
169
  }
175
170
 
176
- static void test_span_multi_term_hash(TestCase *tc, void *data)
177
- {
171
+ static void test_span_multi_term_hash(TestCase *tc, void *data) {
178
172
  FrtQuery *q1 = frt_spanmtq_new_conf(field, 100);
179
173
  FrtQuery *q2 = frt_spanmtq_new(field);
180
174
  (void)data, (void)tc;
@@ -203,8 +197,7 @@ static void test_span_multi_term_hash(TestCase *tc, void *data)
203
197
  frt_q_deref(q2);
204
198
  }
205
199
 
206
- static void test_span_prefix(TestCase *tc, void *data)
207
- {
200
+ static void test_span_prefix(TestCase *tc, void *data) {
208
201
  FrtStore *store = (FrtStore *)data;
209
202
  FrtIndexReader *ir;
210
203
  FrtSearcher *sea;
@@ -235,8 +228,7 @@ static void test_span_prefix(TestCase *tc, void *data)
235
228
  frt_ir_close(ir);
236
229
  }
237
230
 
238
- static void test_span_prefix_hash(TestCase *tc, void *data)
239
- {
231
+ static void test_span_prefix_hash(TestCase *tc, void *data) {
240
232
  FrtQuery *q1, *q2;
241
233
  (void)data;
242
234
  q1 = frt_spanprq_new(rb_intern("A"), "a");
@@ -260,8 +252,7 @@ static void test_span_prefix_hash(TestCase *tc, void *data)
260
252
  frt_q_deref(q1);
261
253
  }
262
254
 
263
- static void test_span_first(TestCase *tc, void *data)
264
- {
255
+ static void test_span_first(TestCase *tc, void *data) {
265
256
  FrtStore *store = (FrtStore *)data;
266
257
  FrtIndexReader *ir;
267
258
  FrtSearcher *sea;
@@ -285,8 +276,7 @@ static void test_span_first(TestCase *tc, void *data)
285
276
  frt_ir_close(ir);
286
277
  }
287
278
 
288
- static void test_span_first_hash(TestCase *tc, void *data)
289
- {
279
+ static void test_span_first_hash(TestCase *tc, void *data) {
290
280
  FrtQuery *q1, *q2;
291
281
  (void)data;
292
282
 
@@ -311,8 +301,7 @@ static void test_span_first_hash(TestCase *tc, void *data)
311
301
  frt_q_deref(q1);
312
302
  }
313
303
 
314
- static void test_span_or(TestCase *tc, void *data)
315
- {
304
+ static void test_span_or(TestCase *tc, void *data) {
316
305
  FrtStore *store = (FrtStore *)data;
317
306
  FrtIndexReader *ir;
318
307
  FrtSearcher *sea;
@@ -334,8 +323,7 @@ static void test_span_or(TestCase *tc, void *data)
334
323
  frt_ir_close(ir);
335
324
  }
336
325
 
337
- static void test_span_or_hash(TestCase *tc, void *data)
338
- {
326
+ static void test_span_or_hash(TestCase *tc, void *data) {
339
327
  FrtQuery *q1, *q2;
340
328
  (void)data;
341
329
 
@@ -366,8 +354,7 @@ static void test_span_or_hash(TestCase *tc, void *data)
366
354
  frt_q_deref(q1);
367
355
  }
368
356
 
369
- static void test_span_near(TestCase *tc, void *data)
370
- {
357
+ static void test_span_near(TestCase *tc, void *data) {
371
358
  FrtStore *store = (FrtStore *)data;
372
359
  FrtIndexReader *ir;
373
360
  FrtSearcher *sea;
@@ -415,8 +402,7 @@ static void test_span_near(TestCase *tc, void *data)
415
402
  frt_ir_close(ir);
416
403
  }
417
404
 
418
- static void test_span_near_hash(TestCase *tc, void *data)
419
- {
405
+ static void test_span_near_hash(TestCase *tc, void *data) {
420
406
  FrtQuery *q1, *q2;
421
407
  (void)data;
422
408
 
@@ -468,8 +454,7 @@ static void test_span_near_hash(TestCase *tc, void *data)
468
454
  frt_q_deref(q1);
469
455
  }
470
456
 
471
- static void test_span_not(TestCase *tc, void *data)
472
- {
457
+ static void test_span_not(TestCase *tc, void *data) {
473
458
  FrtStore *store = (FrtStore *)data;
474
459
  FrtIndexReader *ir;
475
460
  FrtSearcher *sea;
@@ -523,8 +508,7 @@ static void test_span_not(TestCase *tc, void *data)
523
508
  frt_ir_close(ir);
524
509
  }
525
510
 
526
- static void test_span_not_hash(TestCase *tc, void *data)
527
- {
511
+ static void test_span_not_hash(TestCase *tc, void *data) {
528
512
  FrtQuery *q1, *q2;
529
513
  (void)data;
530
514
 
@@ -559,9 +543,9 @@ static void test_span_not_hash(TestCase *tc, void *data)
559
543
  frt_q_deref(q1);
560
544
  }
561
545
 
562
- TestSuite *ts_q_span(TestSuite *suite)
563
- {
546
+ TestSuite *ts_q_span(TestSuite *suite) {
564
547
  FrtStore *store = frt_open_ram_store(NULL);
548
+ store->create_folder(store, segm_idx_name);
565
549
  field = rb_intern("field");
566
550
  span_test_setup(store);
567
551
 
@@ -6,54 +6,55 @@
6
6
  * Test ramo_write_to which basically writes the contents of a RAM output
7
7
  * stream to another output stream, usually a FileSystem output stream.
8
8
  */
9
- void test_write_to(TestCase *tc, void *data)
10
- {
9
+ void test_write_to(TestCase *tc, void *data) {
11
10
  int i;
12
11
  char *tmp;
13
12
  FrtStore *ram_store = frt_open_ram_store(NULL);
13
+ ram_store->create_folder(ram_store, segm_idx_name);
14
14
  FrtStore *fs_store = frt_open_mdbx_store("./test/testdir/store");
15
+ fs_store->create_folder(fs_store, segm_idx_name);
15
16
  char str[18] = "³³ øãíøäÄ";
16
17
  char buf[18000] = "";
17
18
  FrtOutStream *ostream, *fs_ostream;
18
19
  FrtInStream *istream;
19
20
  (void)data;/* suppress unused parameter warning */
20
21
 
21
- fs_store->clear(fs_store);
22
+ fs_store->clear(fs_store, segm_idx_name);
22
23
 
23
24
  for (i = 0; i < 1000; i++) {
24
25
  strcat(buf, str);
25
26
  }
26
27
 
27
- ostream = ram_store->new_output(ram_store, "_rw_funny_string.cfs");
28
+ ostream = ram_store->new_output(ram_store, segm_idx_name, "_rw_funny_string.fdt");
28
29
  frt_os_write_string(ostream, str);
29
30
  frt_os_write_string(ostream, buf);
30
31
 
31
- fs_ostream = fs_store->new_output(fs_store, "_rw_funny_string.cfs");
32
+ fs_ostream = fs_store->new_output(fs_store, segm_idx_name, "_rw_funny_string.fdt");
32
33
  frt_ramo_write_to(ostream, fs_ostream);
33
34
 
34
35
  frt_os_close(ostream);
35
36
  frt_os_close(fs_ostream);
36
37
 
37
- istream = fs_store->open_input(fs_store, "_rw_funny_string.cfs");
38
+ istream = fs_store->open_input(fs_store, segm_idx_name, "_rw_funny_string.fdt");
38
39
  Asequal(str, tmp = frt_is_read_string(istream));
39
40
  free(tmp);
40
41
  Asequal(buf, tmp = frt_is_read_string(istream));
41
42
  free(tmp);
42
43
  frt_is_close(istream);
43
44
 
44
- Aiequal(17021, fs_store->length(fs_store, "_rw_funny_string.cfs"));
45
+ Aiequal(17021, fs_store->length(fs_store, segm_idx_name, "_rw_funny_string.fdt"));
45
46
  frt_store_close(ram_store);
46
- ram_store = frt_open_ram_store_and_copy(NULL, fs_store, false);
47
+ ram_store = frt_open_ram_store_and_copy(NULL, fs_store, segm_idx_name, false);
47
48
 
48
- istream = ram_store->open_input(ram_store, "_rw_funny_string.cfs");
49
+ istream = ram_store->open_input(ram_store, segm_idx_name, "_rw_funny_string.fdt");
49
50
  Asequal(str, tmp = frt_is_read_string(istream));
50
51
  free(tmp);
51
52
  Asequal(buf, tmp = frt_is_read_string(istream));
52
53
  free(tmp);
53
54
  frt_is_close(istream);
54
- Aiequal(17021, ram_store->length(ram_store, "_rw_funny_string.cfs"));
55
+ Aiequal(17021, ram_store->length(ram_store, segm_idx_name, "_rw_funny_string.fdt"));
55
56
 
56
- fs_store->clear_all(fs_store);
57
+ fs_store->clear_all(fs_store, segm_idx_name);
57
58
  frt_store_close(fs_store);
58
59
  frt_store_close(ram_store);
59
60
  }
@@ -61,9 +62,9 @@ void test_write_to(TestCase *tc, void *data)
61
62
  /**
62
63
  * Create the RAMStore test suite
63
64
  */
64
- TestSuite *ts_ram_store(TestSuite *suite)
65
- {
65
+ TestSuite *ts_ram_store(TestSuite *suite) {
66
66
  FrtStore *store = frt_open_ram_store(NULL);
67
+ store->create_folder(store, segm_idx_name);
67
68
 
68
69
  suite = ADD_SUITE(suite);
69
70