isomorfeus-ferret 0.17.2 → 0.17.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) 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 +161 -187
  10. data/ext/isomorfeus_ferret_ext/frb_lazy_doc.c +14 -16
  11. data/ext/isomorfeus_ferret_ext/frb_search.c +77 -69
  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 +5 -33
  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 +14 -33
  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_filter.c +2 -2
  31. data/ext/isomorfeus_ferret_ext/frt_global.c +10 -4
  32. data/ext/isomorfeus_ferret_ext/frt_global.h +11 -15
  33. data/ext/isomorfeus_ferret_ext/frt_hash.c +8 -8
  34. data/ext/isomorfeus_ferret_ext/frt_hash.h +1 -2
  35. data/ext/isomorfeus_ferret_ext/frt_hashset.c +20 -40
  36. data/ext/isomorfeus_ferret_ext/frt_hashset.h +1 -2
  37. data/ext/isomorfeus_ferret_ext/frt_helper.c +7 -15
  38. data/ext/isomorfeus_ferret_ext/frt_in_stream.c +35 -45
  39. data/ext/isomorfeus_ferret_ext/frt_in_stream.h +3 -2
  40. data/ext/isomorfeus_ferret_ext/frt_ind.c +21 -39
  41. data/ext/isomorfeus_ferret_ext/frt_ind.h +1 -1
  42. data/ext/isomorfeus_ferret_ext/frt_index.c +334 -848
  43. data/ext/isomorfeus_ferret_ext/frt_index.h +4 -105
  44. data/ext/isomorfeus_ferret_ext/frt_lang.c +5 -10
  45. data/ext/isomorfeus_ferret_ext/frt_lazy_doc.c +3 -3
  46. data/ext/isomorfeus_ferret_ext/frt_lazy_doc.h +1 -1
  47. data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.c +18 -25
  48. data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.h +5 -5
  49. data/ext/isomorfeus_ferret_ext/frt_mdbx_store.c +102 -70
  50. data/ext/isomorfeus_ferret_ext/frt_mempool.c +8 -16
  51. data/ext/isomorfeus_ferret_ext/frt_multimapper.c +23 -46
  52. data/ext/isomorfeus_ferret_ext/frt_multimapper.h +4 -8
  53. data/ext/isomorfeus_ferret_ext/frt_out_stream.c +31 -43
  54. data/ext/isomorfeus_ferret_ext/frt_out_stream.h +2 -2
  55. data/ext/isomorfeus_ferret_ext/frt_posh.c +6 -819
  56. data/ext/isomorfeus_ferret_ext/frt_posh.h +0 -57
  57. data/ext/isomorfeus_ferret_ext/frt_priorityqueue.c +11 -22
  58. data/ext/isomorfeus_ferret_ext/frt_priorityqueue.h +1 -2
  59. data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +131 -217
  60. data/ext/isomorfeus_ferret_ext/frt_q_const_score.c +2 -2
  61. data/ext/isomorfeus_ferret_ext/frt_q_filtered_query.c +4 -4
  62. data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +18 -26
  63. data/ext/isomorfeus_ferret_ext/frt_q_multi_term.c +27 -28
  64. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +49 -98
  65. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +64 -116
  66. data/ext/isomorfeus_ferret_ext/frt_q_range.c +8 -14
  67. data/ext/isomorfeus_ferret_ext/frt_q_span.c +251 -365
  68. data/ext/isomorfeus_ferret_ext/frt_q_term.c +9 -9
  69. data/ext/isomorfeus_ferret_ext/frt_q_wildcard.c +1 -2
  70. data/ext/isomorfeus_ferret_ext/frt_ram_store.c +134 -85
  71. data/ext/isomorfeus_ferret_ext/frt_search.c +109 -191
  72. data/ext/isomorfeus_ferret_ext/frt_search.h +6 -6
  73. data/ext/isomorfeus_ferret_ext/frt_similarity.c +12 -23
  74. data/ext/isomorfeus_ferret_ext/frt_similarity.h +1 -2
  75. data/ext/isomorfeus_ferret_ext/frt_sort.c +20 -20
  76. data/ext/isomorfeus_ferret_ext/frt_store.c +13 -25
  77. data/ext/isomorfeus_ferret_ext/frt_store.h +86 -52
  78. data/ext/isomorfeus_ferret_ext/frt_term_vectors.c +8 -16
  79. data/ext/isomorfeus_ferret_ext/frt_win32.h +5 -10
  80. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +12 -11
  81. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.h +11 -13
  82. data/ext/isomorfeus_ferret_ext/lz4.c +422 -195
  83. data/ext/isomorfeus_ferret_ext/lz4.h +114 -46
  84. data/ext/isomorfeus_ferret_ext/lz4frame.c +421 -242
  85. data/ext/isomorfeus_ferret_ext/lz4frame.h +122 -53
  86. data/ext/isomorfeus_ferret_ext/lz4hc.c +127 -111
  87. data/ext/isomorfeus_ferret_ext/lz4hc.h +14 -14
  88. data/ext/isomorfeus_ferret_ext/lz4xxhash.h +1 -1
  89. data/ext/isomorfeus_ferret_ext/mdbx.c +3762 -2526
  90. data/ext/isomorfeus_ferret_ext/mdbx.h +115 -70
  91. data/ext/isomorfeus_ferret_ext/test.c +41 -88
  92. data/ext/isomorfeus_ferret_ext/test.h +3 -6
  93. data/ext/isomorfeus_ferret_ext/test_1710.c +11 -13
  94. data/ext/isomorfeus_ferret_ext/test_analysis.c +32 -64
  95. data/ext/isomorfeus_ferret_ext/test_array.c +6 -12
  96. data/ext/isomorfeus_ferret_ext/test_bitvector.c +12 -24
  97. data/ext/isomorfeus_ferret_ext/test_document.c +23 -33
  98. data/ext/isomorfeus_ferret_ext/test_except.c +10 -21
  99. data/ext/isomorfeus_ferret_ext/test_fields.c +62 -68
  100. data/ext/isomorfeus_ferret_ext/test_file_deleter.c +16 -25
  101. data/ext/isomorfeus_ferret_ext/test_filter.c +22 -33
  102. data/ext/isomorfeus_ferret_ext/test_global.c +14 -29
  103. data/ext/isomorfeus_ferret_ext/test_hash.c +19 -38
  104. data/ext/isomorfeus_ferret_ext/test_hashset.c +8 -16
  105. data/ext/isomorfeus_ferret_ext/test_helper.c +4 -8
  106. data/ext/isomorfeus_ferret_ext/test_highlighter.c +16 -28
  107. data/ext/isomorfeus_ferret_ext/test_index.c +307 -519
  108. data/ext/isomorfeus_ferret_ext/test_lang.c +7 -14
  109. data/ext/isomorfeus_ferret_ext/test_mdbx_store.c +2 -5
  110. data/ext/isomorfeus_ferret_ext/test_mempool.c +5 -10
  111. data/ext/isomorfeus_ferret_ext/test_multimapper.c +3 -6
  112. data/ext/isomorfeus_ferret_ext/test_priorityqueue.c +9 -18
  113. data/ext/isomorfeus_ferret_ext/test_q_const_score.c +4 -6
  114. data/ext/isomorfeus_ferret_ext/test_q_filtered.c +3 -4
  115. data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +9 -15
  116. data/ext/isomorfeus_ferret_ext/test_q_parser.c +8 -16
  117. data/ext/isomorfeus_ferret_ext/test_q_span.c +19 -35
  118. data/ext/isomorfeus_ferret_ext/test_ram_store.c +14 -13
  119. data/ext/isomorfeus_ferret_ext/test_search.c +66 -115
  120. data/ext/isomorfeus_ferret_ext/test_segments.c +8 -13
  121. data/ext/isomorfeus_ferret_ext/test_similarity.c +2 -4
  122. data/ext/isomorfeus_ferret_ext/test_sort.c +17 -27
  123. data/ext/isomorfeus_ferret_ext/test_store.c +96 -115
  124. data/ext/isomorfeus_ferret_ext/test_term.c +9 -15
  125. data/ext/isomorfeus_ferret_ext/test_term_vectors.c +9 -14
  126. data/ext/isomorfeus_ferret_ext/test_test.c +4 -8
  127. data/ext/isomorfeus_ferret_ext/test_threading.c +15 -21
  128. data/ext/isomorfeus_ferret_ext/testhelper.c +11 -21
  129. data/ext/isomorfeus_ferret_ext/testhelper.h +1 -1
  130. data/ext/isomorfeus_ferret_ext/tests_all.h +1 -2
  131. data/lib/isomorfeus/ferret/index/index.rb +8 -8
  132. data/lib/isomorfeus/ferret/version.rb +1 -1
  133. metadata +32 -6
@@ -14,11 +14,9 @@ static FrtFieldInfos *prep_all_fis(void) {
14
14
  frt_fis_add_field(fis, frt_fi_new(rb_intern("tv+offsets"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
15
15
  frt_fis_add_field(fis, frt_fi_new(rb_intern("tv+offsets un-t"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
16
16
  return fis;
17
-
18
17
  }
19
18
 
20
- static void destroy_docs(FrtDocument **docs, int len)
21
- {
19
+ static void destroy_docs(FrtDocument **docs, int len) {
22
20
  int i;
23
21
  for (i = 0; i < len; i++) {
24
22
  frt_doc_destroy(docs[i]);
@@ -30,19 +28,15 @@ static FrtFieldInfos *prep_book_fis(void) {
30
28
  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 | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
31
29
  frt_fis_add_field(fis, frt_fi_new(rb_intern("year"), 0 | FRT_FI_IS_STORED_BM));
32
30
  return fis;
33
-
34
31
  }
35
32
 
36
33
  FrtDocument *prep_book(void) {
37
34
  FrtDocument *doc = frt_doc_new();
38
35
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
39
36
 
40
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(author),
41
- frt_estrdup("P.H. Newby"), enc))->destroy_data = true;
42
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(title),
43
- frt_estrdup("Something To Answer For"), enc))->destroy_data = true;
44
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(year),
45
- frt_estrdup("1969"), enc))->destroy_data = true;
37
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(author), "P.H. Newby", enc));
38
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(title), "Something To Answer For", enc));
39
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(year), "1969", enc));
46
40
  return doc;
47
41
  }
48
42
 
@@ -51,285 +45,171 @@ FrtDocument **prep_book_list(void) {
51
45
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
52
46
  FrtDocument **docs = FRT_ALLOC_N(FrtDocument *, BOOK_LIST_LENGTH);
53
47
  docs[0] = frt_doc_new();
54
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(author),
55
- frt_estrdup("P.H. Newby"), enc))->destroy_data = true;
56
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(title),
57
- frt_estrdup("Something To Answer For"), enc))->destroy_data = true;
58
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(year),
59
- frt_estrdup("1969"), enc))->destroy_data = true;
48
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(author), "P.H. Newby", enc));
49
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(title), "Something To Answer For", enc));
50
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(year), "1969", enc));
60
51
  docs[1] = frt_doc_new();
61
- frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(author),
62
- frt_estrdup("Bernice Rubens"), enc))->destroy_data = true;
63
- frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(title),
64
- frt_estrdup("The Elected Member"), enc))->destroy_data = true;
65
- frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(year),
66
- frt_estrdup("1970"), enc))->destroy_data = true;
52
+ frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(author), "Bernice Rubens", enc));
53
+ frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(title), "The Elected Member", enc));
54
+ frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(year), "1970", enc));
67
55
  docs[2] = frt_doc_new();
68
- frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(author),
69
- frt_estrdup("V. S. Naipaul"), enc))->destroy_data = true;
70
- frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(title),
71
- frt_estrdup("In a Free State"), enc))->destroy_data = true;
72
- frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(year),
73
- frt_estrdup("1971"), enc))->destroy_data = true;
56
+ frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(author), "V. S. Naipaul", enc));
57
+ frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(title), "In a Free State", enc));
58
+ frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(year), "1971", enc));
74
59
  docs[3] = frt_doc_new();
75
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(author),
76
- frt_estrdup("John Berger"), enc))->destroy_data = true;
77
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(title),
78
- frt_estrdup("G"), enc))->destroy_data = true;
79
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(year),
80
- frt_estrdup("1972"), enc))->destroy_data = true;
60
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(author), "John Berger", enc));
61
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(title), "G", enc));
62
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(year), "1972", enc));
81
63
  docs[4] = frt_doc_new();
82
- frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(author),
83
- frt_estrdup("J. G. Farrell"), enc))->destroy_data = true;
84
- frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(title),
85
- frt_estrdup("The Siege of Krishnapur"), enc))->destroy_data = true;
86
- frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(year),
87
- frt_estrdup("1973"), enc))->destroy_data = true;
64
+ frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(author), "J. G. Farrell", enc));
65
+ frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(title), "The Siege of Krishnapur", enc));
66
+ frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(year), "1973", enc));
88
67
  docs[5] = frt_doc_new();
89
- frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(author),
90
- frt_estrdup("Stanley Middleton"), enc))->destroy_data = true;
91
- frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(title),
92
- frt_estrdup("Holiday"), enc))->destroy_data = true;
93
- frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(year),
94
- frt_estrdup("1974"), enc))->destroy_data = true;
68
+ frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(author), "Stanley Middleton", enc));
69
+ frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(title), "Holiday", enc));
70
+ frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(year), "1974", enc));
95
71
  docs[6] = frt_doc_new();
96
- frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(author),
97
- frt_estrdup("Nadine Gordimer"), enc))->destroy_data = true;
98
- frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(title),
99
- frt_estrdup("The Conservationist"), enc))->destroy_data = true;
100
- frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(year),
101
- frt_estrdup("1974"), enc))->destroy_data = true;
72
+ frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(author), "Nadine Gordimer", enc));
73
+ frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(title), "The Conservationist", enc));
74
+ frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(year), "1974", enc));
102
75
  docs[7] = frt_doc_new();
103
- frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(author),
104
- frt_estrdup("Ruth Prawer Jhabvala"), enc))->destroy_data = true;
105
- frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(title),
106
- frt_estrdup("Heat and Dust"), enc))->destroy_data = true;
107
- frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(year),
108
- frt_estrdup("1975"), enc))->destroy_data = true;
76
+ frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(author), "Ruth Prawer Jhabvala", enc));
77
+ frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(title), "Heat and Dust", enc));
78
+ frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(year), "1975", enc));
109
79
  docs[8] = frt_doc_new();
110
- frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(author),
111
- frt_estrdup("David Storey"), enc))->destroy_data = true;
112
- frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(title),
113
- frt_estrdup("Saville"), enc))->destroy_data = true;
114
- frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(year),
115
- frt_estrdup("1976"), enc))->destroy_data = true;
80
+ frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(author), "David Storey", enc));
81
+ frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(title), "Saville", enc));
82
+ frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(year), "1976", enc));
116
83
  docs[9] = frt_doc_new();
117
- frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(author),
118
- frt_estrdup("Paul Scott"), enc))->destroy_data = true;
119
- frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(title),
120
- frt_estrdup("Staying On"), enc))->destroy_data = true;
121
- frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(year),
122
- frt_estrdup("1977"), enc))->destroy_data = true;
84
+ frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(author), "Paul Scott", enc));
85
+ frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(title), "Staying On", enc));
86
+ frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(year), "1977", enc));
123
87
  docs[10] = frt_doc_new();
124
- frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(author),
125
- frt_estrdup("Iris Murdoch"), enc))->destroy_data = true;
126
- frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(title),
127
- frt_estrdup("The Sea"), enc))->destroy_data = true;
128
- frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(year),
129
- frt_estrdup("1978"), enc))->destroy_data = true;
88
+ frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(author), "Iris Murdoch", enc));
89
+ frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(title), "The Sea", enc));
90
+ frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(year), "1978", enc));
130
91
  docs[11] = frt_doc_new();
131
- frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(author),
132
- frt_estrdup("Penelope Fitzgerald"), enc))->destroy_data = true;
133
- frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(title),
134
- frt_estrdup("Offshore"), enc))->destroy_data = true;
135
- frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(year),
136
- frt_estrdup("1979"), enc))->destroy_data = true;
92
+ frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(author), "Penelope Fitzgerald", enc));
93
+ frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(title), "Offshore", enc));
94
+ frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(year), "1979", enc));
137
95
  docs[12] = frt_doc_new();
138
- frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(author),
139
- frt_estrdup("William Golding"), enc))->destroy_data = true;
140
- frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(title),
141
- frt_estrdup("Rites of Passage"), enc))->destroy_data = true;
142
- frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(year),
143
- frt_estrdup("1980"), enc))->destroy_data = true;
96
+ frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(author), "William Golding", enc));
97
+ frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(title), "Rites of Passage", enc));
98
+ frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(year), "1980", enc));
144
99
  docs[13] = frt_doc_new();
145
- frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(author),
146
- frt_estrdup("Salman Rushdie"), enc))->destroy_data = true;
147
- frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(title),
148
- frt_estrdup("Midnight's Children"), enc))->destroy_data = true;
149
- frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(year),
150
- frt_estrdup("1981"), enc))->destroy_data = true;
100
+ frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(author), "Salman Rushdie", enc));
101
+ frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(title), "Midnight's Children", enc));
102
+ frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(year), "1981", enc));
151
103
  docs[14] = frt_doc_new();
152
- frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(author),
153
- frt_estrdup("Thomas Keneally"), enc))->destroy_data = true;
154
- frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(title),
155
- frt_estrdup("Schindler's Ark"), enc))->destroy_data = true;
156
- frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(year),
157
- frt_estrdup("1982"), enc))->destroy_data = true;
104
+ frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(author), "Thomas Keneally", enc));
105
+ frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(title), "Schindler's Ark", enc));
106
+ frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(year), "1982", enc));
158
107
  docs[15] = frt_doc_new();
159
- frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(author),
160
- frt_estrdup("J. M. Coetzee"), enc))->destroy_data = true;
161
- frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(title),
162
- frt_estrdup("Life and Times of Michael K"), enc))->destroy_data = true;
163
- frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(year),
164
- frt_estrdup("1983"), enc))->destroy_data = true;
108
+ frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(author), "J. M. Coetzee", enc));
109
+ frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(title), "Life and Times of Michael K", enc));
110
+ frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(year), "1983", enc));
165
111
  docs[16] = frt_doc_new();
166
- frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(author),
167
- frt_estrdup("Anita Brookner"), enc))->destroy_data = true;
168
- frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(title),
169
- frt_estrdup("Hotel du Lac"), enc))->destroy_data = true;
170
- frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(year),
171
- frt_estrdup("1984"), enc))->destroy_data = true;
112
+ frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(author), "Anita Brookner", enc));
113
+ frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(title), "Hotel du Lac", enc));
114
+ frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(year), "1984", enc));
172
115
  docs[17] = frt_doc_new();
173
- frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(author),
174
- frt_estrdup("Keri Hulme"), enc))->destroy_data = true;
175
- frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(title),
176
- frt_estrdup("The Bone People"), enc))->destroy_data = true;
177
- frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(year),
178
- frt_estrdup("1985"), enc))->destroy_data = true;
116
+ frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(author), "Keri Hulme", enc));
117
+ frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(title), "The Bone People", enc));
118
+ frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(year), "1985", enc));
179
119
  docs[18] = frt_doc_new();
180
- frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(author),
181
- frt_estrdup("Kingsley Amis"), enc))->destroy_data = true;
182
- frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(title),
183
- frt_estrdup("The Old Devils"), enc))->destroy_data = true;
184
- frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(year),
185
- frt_estrdup("1986"), enc))->destroy_data = true;
120
+ frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(author), "Kingsley Amis", enc));
121
+ frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(title), "The Old Devils", enc));
122
+ frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(year), "1986", enc));
186
123
  docs[19] = frt_doc_new();
187
- frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(author),
188
- frt_estrdup("Penelope Lively"), enc))->destroy_data = true;
189
- frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(title),
190
- frt_estrdup("Moon Tiger"), enc))->destroy_data = true;
191
- frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(year),
192
- frt_estrdup("1987"), enc))->destroy_data = true;
124
+ frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(author), "Penelope Lively", enc));
125
+ frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(title), "Moon Tiger", enc));
126
+ frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(year), "1987", enc));
193
127
  docs[20] = frt_doc_new();
194
- frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(author),
195
- frt_estrdup("Peter Carey"), enc))->destroy_data = true;
196
- frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(title),
197
- frt_estrdup("Oscar and Lucinda"), enc))->destroy_data = true;
198
- frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(year),
199
- frt_estrdup("1988"), enc))->destroy_data = true;
128
+ frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(author), "Peter Carey", enc));
129
+ frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(title), "Oscar and Lucinda", enc));
130
+ frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(year), "1988", enc));
200
131
  docs[21] = frt_doc_new();
201
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(author),
202
- frt_estrdup("Kazuo Ishiguro"), enc))->destroy_data = true;
203
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(title),
204
- frt_estrdup("The Remains of the Day"), enc))->destroy_data = true;
205
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(year),
206
- frt_estrdup("1989"), enc))->destroy_data = true;
132
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(author), "Kazuo Ishiguro", enc));
133
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(title), "The Remains of the Day", enc));
134
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(year), "1989", enc));
207
135
  docs[22] = frt_doc_new();
208
- frt_doc_add_field(docs[22], frt_df_add_data(frt_df_new(author),
209
- frt_estrdup("A. S. Byatt"), enc))->destroy_data = true;
210
- frt_doc_add_field(docs[22], frt_df_add_data(frt_df_new(title),
211
- frt_estrdup("Possession"), enc))->destroy_data = true;
212
- frt_doc_add_field(docs[22], frt_df_add_data(frt_df_new(year),
213
- frt_estrdup("1990"), enc))->destroy_data = true;
136
+ frt_doc_add_field(docs[22], frt_df_add_data(frt_df_new(author), "A. S. Byatt", enc));
137
+ frt_doc_add_field(docs[22], frt_df_add_data(frt_df_new(title), "Possession", enc));
138
+ frt_doc_add_field(docs[22], frt_df_add_data(frt_df_new(year), "1990", enc));
214
139
  docs[23] = frt_doc_new();
215
- frt_doc_add_field(docs[23], frt_df_add_data(frt_df_new(author),
216
- frt_estrdup("Ben Okri"), enc))->destroy_data = true;
217
- frt_doc_add_field(docs[23], frt_df_add_data(frt_df_new(title),
218
- frt_estrdup("The Famished Road"), enc))->destroy_data = true;
219
- frt_doc_add_field(docs[23], frt_df_add_data(frt_df_new(year),
220
- frt_estrdup("1991"), enc))->destroy_data = true;
140
+ frt_doc_add_field(docs[23], frt_df_add_data(frt_df_new(author), "Ben Okri", enc));
141
+ frt_doc_add_field(docs[23], frt_df_add_data(frt_df_new(title), "The Famished Road", enc));
142
+ frt_doc_add_field(docs[23], frt_df_add_data(frt_df_new(year), "1991", enc));
221
143
  docs[24] = frt_doc_new();
222
- frt_doc_add_field(docs[24], frt_df_add_data(frt_df_new(author),
223
- frt_estrdup("Michael Ondaatje"), enc))->destroy_data = true;
224
- frt_doc_add_field(docs[24], frt_df_add_data(frt_df_new(title),
225
- frt_estrdup("The English Patient"), enc))->destroy_data = true;
226
- frt_doc_add_field(docs[24], frt_df_add_data(frt_df_new(year),
227
- frt_estrdup("1992"), enc))->destroy_data = true;
144
+ frt_doc_add_field(docs[24], frt_df_add_data(frt_df_new(author), "Michael Ondaatje", enc));
145
+ frt_doc_add_field(docs[24], frt_df_add_data(frt_df_new(title), "The English Patient", enc));
146
+ frt_doc_add_field(docs[24], frt_df_add_data(frt_df_new(year), "1992", enc));
228
147
  docs[25] = frt_doc_new();
229
- frt_doc_add_field(docs[25], frt_df_add_data(frt_df_new(author),
230
- frt_estrdup("Barry Unsworth"), enc))->destroy_data = true;
231
- frt_doc_add_field(docs[25], frt_df_add_data(frt_df_new(title),
232
- frt_estrdup("Sacred Hunger"), enc))->destroy_data = true;
233
- frt_doc_add_field(docs[25], frt_df_add_data(frt_df_new(year),
234
- frt_estrdup("1992"), enc))->destroy_data = true;
148
+ frt_doc_add_field(docs[25], frt_df_add_data(frt_df_new(author), "Barry Unsworth", enc));
149
+ frt_doc_add_field(docs[25], frt_df_add_data(frt_df_new(title), "Sacred Hunger", enc));
150
+ frt_doc_add_field(docs[25], frt_df_add_data(frt_df_new(year), "1992", enc));
235
151
  docs[26] = frt_doc_new();
236
- frt_doc_add_field(docs[26], frt_df_add_data(frt_df_new(author),
237
- frt_estrdup("Roddy Doyle"), enc))->destroy_data = true;
238
- frt_doc_add_field(docs[26], frt_df_add_data(frt_df_new(title),
239
- frt_estrdup("Paddy Clarke Ha Ha Ha"), enc))->destroy_data = true;
240
- frt_doc_add_field(docs[26], frt_df_add_data(frt_df_new(year),
241
- frt_estrdup("1993"), enc))->destroy_data = true;
152
+ frt_doc_add_field(docs[26], frt_df_add_data(frt_df_new(author), "Roddy Doyle", enc));
153
+ frt_doc_add_field(docs[26], frt_df_add_data(frt_df_new(title), "Paddy Clarke Ha Ha Ha", enc));
154
+ frt_doc_add_field(docs[26], frt_df_add_data(frt_df_new(year), "1993", enc));
242
155
  docs[27] = frt_doc_new();
243
- frt_doc_add_field(docs[27], frt_df_add_data(frt_df_new(author),
244
- frt_estrdup("James Kelman"), enc))->destroy_data = true;
245
- frt_doc_add_field(docs[27], frt_df_add_data(frt_df_new(title),
246
- frt_estrdup("How Late It Was, How Late"), enc))->destroy_data = true;
247
- frt_doc_add_field(docs[27], frt_df_add_data(frt_df_new(year),
248
- frt_estrdup("1994"), enc))->destroy_data = true;
156
+ frt_doc_add_field(docs[27], frt_df_add_data(frt_df_new(author), "James Kelman", enc));
157
+ frt_doc_add_field(docs[27], frt_df_add_data(frt_df_new(title), "How Late It Was, How Late", enc));
158
+ frt_doc_add_field(docs[27], frt_df_add_data(frt_df_new(year), "1994", enc));
249
159
  docs[28] = frt_doc_new();
250
- frt_doc_add_field(docs[28], frt_df_add_data(frt_df_new(author),
251
- frt_estrdup("Pat Barker"), enc))->destroy_data = true;
252
- frt_doc_add_field(docs[28], frt_df_add_data(frt_df_new(title),
253
- frt_estrdup("The Ghost Road"), enc))->destroy_data = true;
254
- frt_doc_add_field(docs[28], frt_df_add_data(frt_df_new(year),
255
- frt_estrdup("1995"), enc))->destroy_data = true;
160
+ frt_doc_add_field(docs[28], frt_df_add_data(frt_df_new(author), "Pat Barker", enc));
161
+ frt_doc_add_field(docs[28], frt_df_add_data(frt_df_new(title), "The Ghost Road", enc));
162
+ frt_doc_add_field(docs[28], frt_df_add_data(frt_df_new(year), "1995", enc));
256
163
  docs[29] = frt_doc_new();
257
- frt_doc_add_field(docs[29], frt_df_add_data(frt_df_new(author),
258
- frt_estrdup("Graham Swift"), enc))->destroy_data = true;
259
- frt_doc_add_field(docs[29], frt_df_add_data(frt_df_new(title),
260
- frt_estrdup("Last Orders"), enc))->destroy_data = true;
261
- frt_doc_add_field(docs[29], frt_df_add_data(frt_df_new(year),
262
- frt_estrdup("1996"), enc))->destroy_data = true;
164
+ frt_doc_add_field(docs[29], frt_df_add_data(frt_df_new(author), "Graham Swift", enc));
165
+ frt_doc_add_field(docs[29], frt_df_add_data(frt_df_new(title), "Last Orders", enc));
166
+ frt_doc_add_field(docs[29], frt_df_add_data(frt_df_new(year), "1996", enc));
263
167
  docs[30] = frt_doc_new();
264
- frt_doc_add_field(docs[30], frt_df_add_data(frt_df_new(author),
265
- frt_estrdup("Arundati Roy"), enc))->destroy_data = true;
266
- frt_doc_add_field(docs[30], frt_df_add_data(frt_df_new(title),
267
- frt_estrdup("The God of Small Things"), enc))->destroy_data = true;
268
- frt_doc_add_field(docs[30], frt_df_add_data(frt_df_new(year),
269
- frt_estrdup("1997"), enc))->destroy_data = true;
168
+ frt_doc_add_field(docs[30], frt_df_add_data(frt_df_new(author), "Arundati Roy", enc));
169
+ frt_doc_add_field(docs[30], frt_df_add_data(frt_df_new(title), "The God of Small Things", enc));
170
+ frt_doc_add_field(docs[30], frt_df_add_data(frt_df_new(year), "1997", enc));
270
171
  docs[31] = frt_doc_new();
271
- frt_doc_add_field(docs[31], frt_df_add_data(frt_df_new(author),
272
- frt_estrdup("Ian McEwan"), enc))->destroy_data = true;
273
- frt_doc_add_field(docs[31], frt_df_add_data(frt_df_new(title),
274
- frt_estrdup("Amsterdam"), enc))->destroy_data = true;
275
- frt_doc_add_field(docs[31], frt_df_add_data(frt_df_new(year),
276
- frt_estrdup("1998"), enc))->destroy_data = true;
172
+ frt_doc_add_field(docs[31], frt_df_add_data(frt_df_new(author), "Ian McEwan", enc));
173
+ frt_doc_add_field(docs[31], frt_df_add_data(frt_df_new(title), "Amsterdam", enc));
174
+ frt_doc_add_field(docs[31], frt_df_add_data(frt_df_new(year), "1998", enc));
277
175
  docs[32] = frt_doc_new();
278
- frt_doc_add_field(docs[32], frt_df_add_data(frt_df_new(author),
279
- frt_estrdup("J. M. Coetzee"), enc))->destroy_data = true;
280
- frt_doc_add_field(docs[32], frt_df_add_data(frt_df_new(title),
281
- frt_estrdup("Disgrace"), enc))->destroy_data = true;
282
- frt_doc_add_field(docs[32], frt_df_add_data(frt_df_new(year),
283
- frt_estrdup("1999"), enc))->destroy_data = true;
176
+ frt_doc_add_field(docs[32], frt_df_add_data(frt_df_new(author), "J. M. Coetzee", enc));
177
+ frt_doc_add_field(docs[32], frt_df_add_data(frt_df_new(title), "Disgrace", enc));
178
+ frt_doc_add_field(docs[32], frt_df_add_data(frt_df_new(year), "1999", enc));
284
179
  docs[33] = frt_doc_new();
285
- frt_doc_add_field(docs[33], frt_df_add_data(frt_df_new(author),
286
- frt_estrdup("Margaret Atwood"), enc))->destroy_data = true;
287
- frt_doc_add_field(docs[33], frt_df_add_data(frt_df_new(title),
288
- frt_estrdup("The Blind Assassin"), enc))->destroy_data = true;
289
- frt_doc_add_field(docs[33], frt_df_add_data(frt_df_new(year),
290
- frt_estrdup("2000"), enc))->destroy_data = true;
180
+ frt_doc_add_field(docs[33], frt_df_add_data(frt_df_new(author), "Margaret Atwood", enc));
181
+ frt_doc_add_field(docs[33], frt_df_add_data(frt_df_new(title), "The Blind Assassin", enc));
182
+ frt_doc_add_field(docs[33], frt_df_add_data(frt_df_new(year), "2000", enc));
291
183
  docs[34] = frt_doc_new();
292
- frt_doc_add_field(docs[34], frt_df_add_data(frt_df_new(author),
293
- frt_estrdup("Peter Carey"), enc))->destroy_data = true;
294
- frt_doc_add_field(docs[34], frt_df_add_data(frt_df_new(title),
295
- frt_estrdup("True History of the Kelly Gang"), enc))->destroy_data = true;
296
- frt_doc_add_field(docs[34], frt_df_add_data(frt_df_new(year),
297
- frt_estrdup("2001"), enc))->destroy_data = true;
184
+ frt_doc_add_field(docs[34], frt_df_add_data(frt_df_new(author), "Peter Carey", enc));
185
+ frt_doc_add_field(docs[34], frt_df_add_data(frt_df_new(title), "True History of the Kelly Gang", enc));
186
+ frt_doc_add_field(docs[34], frt_df_add_data(frt_df_new(year), "2001", enc));
298
187
  docs[35] = frt_doc_new();
299
- frt_doc_add_field(docs[35], frt_df_add_data(frt_df_new(author),
300
- frt_estrdup("Yann Martel"), enc))->destroy_data = true;
301
- frt_doc_add_field(docs[35], frt_df_add_data(frt_df_new(title),
302
- frt_estrdup("The Life of Pi"), enc))->destroy_data = true;
303
- frt_doc_add_field(docs[35], frt_df_add_data(frt_df_new(year),
304
- frt_estrdup("2002"), enc))->destroy_data = true;
188
+ frt_doc_add_field(docs[35], frt_df_add_data(frt_df_new(author), "Yann Martel", enc));
189
+ frt_doc_add_field(docs[35], frt_df_add_data(frt_df_new(title), "The Life of Pi", enc));
190
+ frt_doc_add_field(docs[35], frt_df_add_data(frt_df_new(year), "2002", enc));
305
191
  docs[36] = frt_doc_new();
306
- frt_doc_add_field(docs[36], frt_df_add_data(frt_df_new(author),
307
- frt_estrdup("DBC Pierre"), enc))->destroy_data = true;
308
- frt_doc_add_field(docs[36], frt_df_add_data(frt_df_new(title),
309
- frt_estrdup("Vernon God Little"), enc))->destroy_data = true;
310
- frt_doc_add_field(docs[36], frt_df_add_data(frt_df_new(year),
311
- frt_estrdup("2003"), enc))->destroy_data = true;
192
+ frt_doc_add_field(docs[36], frt_df_add_data(frt_df_new(author), "DBC Pierre", enc));
193
+ frt_doc_add_field(docs[36], frt_df_add_data(frt_df_new(title), "Vernon God Little", enc));
194
+ frt_doc_add_field(docs[36], frt_df_add_data(frt_df_new(year), "2003", enc));
312
195
 
313
196
  return docs;
314
197
  }
315
198
 
316
- static void add_document_with_fields(FrtIndexWriter *iw, int i)
317
- {
199
+ static void add_document_with_fields(FrtIndexWriter *iw, int i) {
318
200
  FrtDocument **docs = prep_book_list();
319
201
  frt_iw_add_doc(iw, docs[i]);
320
202
  destroy_docs(docs, BOOK_LIST_LENGTH);
321
203
  }
322
204
 
323
- static FrtIndexWriter *create_book_iw_conf(FrtStore *store, const FrtConfig *config)
324
- {
205
+ static FrtIndexWriter *create_book_iw_conf(FrtStore *store, const FrtConfig *config) {
325
206
  FrtFieldInfos *fis = prep_book_fis();
326
207
  frt_index_create(store, fis);
327
208
  frt_fis_deref(fis);
328
209
  return frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), config);
329
210
  }
330
211
 
331
- static FrtIndexWriter *create_book_iw(FrtStore *store)
332
- {
212
+ static FrtIndexWriter *create_book_iw(FrtStore *store) {
333
213
  return create_book_iw_conf(store, &frt_default_config);
334
214
  }
335
215
 
@@ -343,146 +223,91 @@ FrtDocument **prep_ir_test_docs(void) {
343
223
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
344
224
 
345
225
  docs[0] = frt_doc_new();
346
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(changing_field),
347
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 "
348
- "word3 word3"), enc))->destroy_data = true;
349
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(compressed_field_brotli),
350
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 "
351
- "word3 word3"), enc))->destroy_data = true;
352
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(compressed_field_bzip2),
353
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 "
354
- "word3 word3"), enc))->destroy_data = true;
355
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(compressed_field_lz4),
356
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 "
357
- "word3 word3"), enc))->destroy_data = true;
358
- frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(body),
359
- frt_estrdup("Where is Wally"), enc))->destroy_data = true;
226
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(changing_field), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
227
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(compressed_field_brotli), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
228
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(compressed_field_bzip2), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
229
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(compressed_field_lz4), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
230
+ frt_doc_add_field(docs[0], frt_df_add_data(frt_df_new(body), "Where is Wally", enc));
360
231
  docs[1] = frt_doc_new();
361
- frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(body),
362
- frt_estrdup("Some Random Sentence read"), enc))->destroy_data = true;
363
- frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(tag),
364
- frt_estrdup("id_test"), enc))->destroy_data = true;
232
+ frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(body), "Some Random Sentence read", enc));
233
+ frt_doc_add_field(docs[1], frt_df_add_data(frt_df_new(tag), "id_test", enc));
365
234
  docs[2] = frt_doc_new();
366
- frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(body),
367
- frt_estrdup("Some read Random Sentence read"), enc))->destroy_data = true;
235
+ frt_doc_add_field(docs[2], frt_df_add_data(frt_df_new(body), "Some read Random Sentence read", enc));
368
236
  df = frt_df_new(tag);
369
- frt_df_add_data(df, frt_estrdup("one"), enc);
370
- frt_df_add_data(df, frt_estrdup("two"), enc);
371
- frt_df_add_data(df, frt_estrdup("three"), enc);
372
- frt_df_add_data(df, frt_estrdup("four"), enc);
373
- frt_doc_add_field(docs[2], df)->destroy_data = true;
237
+ frt_df_add_data(df, "one ", enc);
238
+ frt_df_add_data(df, "two ", enc);
239
+ frt_df_add_data(df, "three ", enc);
240
+ frt_df_add_data(df, "four", enc);
241
+ frt_doc_add_field(docs[2], df);
374
242
  df = frt_df_new(compressed_field_brotli);
375
- frt_df_add_data(df, frt_estrdup("one"), enc);
376
- frt_df_add_data(df, frt_estrdup("two"), enc);
377
- frt_df_add_data(df, frt_estrdup("three"), enc);
378
- frt_df_add_data(df, frt_estrdup("four"), enc);
379
- frt_doc_add_field(docs[2], df)->destroy_data = true;
243
+ frt_df_add_data(df, "one ", enc);
244
+ frt_df_add_data(df, "two ", enc);
245
+ frt_df_add_data(df, "three ", enc);
246
+ frt_df_add_data(df, "four", enc);
247
+ frt_doc_add_field(docs[2], df);
380
248
  df = frt_df_new(compressed_field_bzip2);
381
- frt_df_add_data(df, frt_estrdup("one"), enc);
382
- frt_df_add_data(df, frt_estrdup("two"), enc);
383
- frt_df_add_data(df, frt_estrdup("three"), enc);
384
- frt_df_add_data(df, frt_estrdup("four"), enc);
385
- frt_doc_add_field(docs[2], df)->destroy_data = true;
249
+ frt_df_add_data(df, "one ", enc);
250
+ frt_df_add_data(df, "two ", enc);
251
+ frt_df_add_data(df, "three ", enc);
252
+ frt_df_add_data(df, "four", enc);
253
+ frt_doc_add_field(docs[2], df);
386
254
  df = frt_df_new(compressed_field_lz4);
387
- frt_df_add_data(df, frt_estrdup("one"), enc);
388
- frt_df_add_data(df, frt_estrdup("two"), enc);
389
- frt_df_add_data(df, frt_estrdup("three"), enc);
390
- frt_df_add_data(df, frt_estrdup("four"), enc);
391
- frt_doc_add_field(docs[2], df)->destroy_data = true;
255
+ frt_df_add_data(df, "one ", enc);
256
+ frt_df_add_data(df, "two ", enc);
257
+ frt_df_add_data(df, "three ", enc);
258
+ frt_df_add_data(df, "four", enc);
259
+ frt_doc_add_field(docs[2], df);
392
260
  docs[3] = frt_doc_new();
393
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(title),
394
- frt_estrdup("War And Peace"), enc))->destroy_data = true;
395
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(body),
396
- frt_estrdup("word3 word4 word1 word2 word1 "
397
- "word3 word4 word1 word3 word3"), enc))->destroy_data = true;
398
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(author),
399
- frt_estrdup("Leo Tolstoy"), enc))->destroy_data = true;
400
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(year),
401
- frt_estrdup("1865"), enc))->destroy_data = true;
402
- frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(text),
403
- frt_estrdup("more text which is not stored"), enc))->destroy_data = true;
261
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(title), "War And Peace", enc));
262
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(body), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
263
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(author), "Leo Tolstoy", enc));
264
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(year), "1865", enc));
265
+ frt_doc_add_field(docs[3], frt_df_add_data(frt_df_new(text), "more text which is not stored", enc));
404
266
  docs[4] = frt_doc_new();
405
- frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(body),
406
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
267
+ frt_doc_add_field(docs[4], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
407
268
  docs[5] = frt_doc_new();
408
- frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(body),
409
- frt_estrdup("Here's Wally"), enc))->destroy_data = true;
410
- frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(text),
411
- frt_estrdup("so_that_norm_can_be_set"), enc))->destroy_data = true;
269
+ frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(body), "Here's Wally", enc));
270
+ frt_doc_add_field(docs[5], frt_df_add_data(frt_df_new(text), "so_that_norm_can_be_set", enc));
412
271
  docs[6] = frt_doc_new();
413
- frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(body),
414
- frt_estrdup("Some Random Sentence read read read read"
415
- ), enc))->destroy_data = true;
272
+ frt_doc_add_field(docs[6], frt_df_add_data(frt_df_new(body), "Some Random Sentence read read read read", enc));
416
273
  docs[7] = frt_doc_new();
417
- frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(body),
418
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
274
+ frt_doc_add_field(docs[7], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
419
275
  docs[8] = frt_doc_new();
420
- frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(body),
421
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
276
+ frt_doc_add_field(docs[8], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
422
277
  docs[9] = frt_doc_new();
423
- frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(body),
424
- frt_estrdup("read Some Random Sentence read this will be used after "
425
- "unfinished next position read"), enc))->destroy_data = true;
278
+ frt_doc_add_field(docs[9], frt_df_add_data(frt_df_new(body), "read Some Random Sentence read this will be used after unfinished next position read", enc));
426
279
  docs[10] = frt_doc_new();
427
- frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(body),
428
- frt_estrdup("Some read Random Sentence"), enc))->destroy_data = true;
429
- frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(changing_field),
430
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 word3 "
431
- "word3"), enc))->destroy_data = true;
280
+ frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(body), "Some read Random Sentence", enc));
281
+ frt_doc_add_field(docs[10], frt_df_add_data(frt_df_new(changing_field), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
432
282
  docs[11] = frt_doc_new();
433
- frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(body),
434
- frt_estrdup("And here too. Well, maybe Not"), enc))->destroy_data = true;
283
+ frt_doc_add_field(docs[11], frt_df_add_data(frt_df_new(body), "And here too. Well, maybe Not", enc));
435
284
  docs[12] = frt_doc_new();
436
- frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(title),
437
- frt_estrdup("Shawshank Redemption"), enc))->destroy_data = true;
438
- frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(body),
439
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
285
+ frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(title), "Shawshank Redemption", enc));
286
+ frt_doc_add_field(docs[12], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
440
287
  docs[13] = frt_doc_new();
441
- frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(body),
442
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
288
+ frt_doc_add_field(docs[13], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
443
289
  docs[14] = frt_doc_new();
444
- frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(body),
445
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
290
+ frt_doc_add_field(docs[14], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
446
291
  docs[15] = frt_doc_new();
447
- frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(body),
448
- frt_estrdup("Some read Random Sentence"), enc))->destroy_data = true;
292
+ frt_doc_add_field(docs[15], frt_df_add_data(frt_df_new(body), "Some read Random Sentence", enc));
449
293
  docs[16] = frt_doc_new();
450
- frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(body),
451
- frt_estrdup("Some Random read read Sentence"), enc))->destroy_data = true;
294
+ frt_doc_add_field(docs[16], frt_df_add_data(frt_df_new(body), "Some Random read read Sentence", enc));
452
295
  docs[17] = frt_doc_new();
453
- frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(body),
454
- frt_estrdup("Some Random read Sentence"), enc))->destroy_data = true;
455
- frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(changing_field),
456
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 word3 "
457
- "word3"), enc))->destroy_data = true;
296
+ frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(body), "Some Random read Sentence", enc));
297
+ frt_doc_add_field(docs[17], frt_df_add_data(frt_df_new(changing_field), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
458
298
  docs[18] = frt_doc_new();
459
- frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(body),
460
- frt_estrdup("Wally Wally Wally"), enc))->destroy_data = true;
299
+ frt_doc_add_field(docs[18], frt_df_add_data(frt_df_new(body), "Wally Wally Wally", enc));
461
300
  docs[19] = frt_doc_new();
462
- frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(body),
463
- frt_estrdup("Some Random Sentence"), enc))->destroy_data = true;
464
- frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(changing_field),
465
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 word3 "
466
- "word3"), enc))->destroy_data = true;
301
+ frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(body), "Some Random Sentence", enc));
302
+ frt_doc_add_field(docs[19], frt_df_add_data(frt_df_new(changing_field), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
467
303
  docs[20] = frt_doc_new();
468
- frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(body),
469
- frt_estrdup("Wally is where Wally usually likes to go. Wally Mart! "
470
- "Wally likes shopping there for Where's Wally books. "
471
- "Wally likes to read"), enc))->destroy_data = true;
472
- frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(changing_field),
473
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 word3 "
474
- "word3"), enc))->destroy_data = true;
304
+ frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(body), "Wally is where Wally usually likes to go. Wally Mart! Wally likes shopping there for Where's Wally books. Wally likes to read", enc));
305
+ frt_doc_add_field(docs[20], frt_df_add_data(frt_df_new(changing_field), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
475
306
  docs[21] = frt_doc_new();
476
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(body),
477
- frt_estrdup("Some Random Sentence read read read and more read read "
478
- "read"), enc))->destroy_data = true;
479
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(changing_field),
480
- frt_estrdup("word3 word4 word1 word2 word1 word3 word4 word1 word3 "
481
- "word3"), enc))->destroy_data = true;
482
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(rb_intern("new field")),
483
- frt_estrdup("zdata znot zto zbe zfound"), enc))->destroy_data = true;
484
- frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(title),
485
- frt_estrdup("title_too_long_for_max_word_lengthxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"), enc))->destroy_data = true;
307
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(body), "Some Random Sentence read read read and more read read read", enc));
308
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(changing_field), "word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", enc));
309
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(rb_intern("new field")), "zdata znot zto zbe zfound", enc));
310
+ frt_doc_add_field(docs[21], frt_df_add_data(frt_df_new(title), "title_too_long_for_max_word_lengthxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", enc));
486
311
 
487
312
  for (i = 1; i < 22; i++) {
488
313
  strcat(buf, "skip ");
@@ -491,7 +316,7 @@ FrtDocument **prep_ir_test_docs(void) {
491
316
  strcat(buf, "skip ");
492
317
  docs[i] = frt_doc_new();
493
318
  frt_doc_add_field(docs[i], frt_df_add_data(frt_df_new(text),
494
- frt_estrdup(buf), enc))->destroy_data = true;
319
+ buf, enc));
495
320
  }
496
321
  return docs;
497
322
  }
@@ -500,8 +325,7 @@ FrtDocument **prep_ir_test_docs(void) {
500
325
  #define MAX_TEST_WORDS 1000
501
326
 
502
327
  static void prep_stde_test_docs(FrtDocument **docs, int doc_cnt, int num_words,
503
- FrtFieldInfos *fis)
504
- {
328
+ FrtFieldInfos *fis) {
505
329
  int i, j;
506
330
  char *buf = FRT_ALLOC_N(char, num_words * (TEST_WORD_LIST_MAX_LEN + 1));
507
331
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
@@ -511,8 +335,7 @@ static void prep_stde_test_docs(FrtDocument **docs, int doc_cnt, int num_words,
511
335
  for (j = 0; j < fis->size; j++) {
512
336
  if ((rand() % 2) == 0) {
513
337
  FrtDocField *df = frt_df_new(fis->fields[j]->name);
514
- frt_df_add_data(df, frt_estrdup(make_random_string(buf, num_words)), enc);
515
- df->destroy_data = true;
338
+ frt_df_add_data(df, make_random_string(buf, num_words), enc);
516
339
  frt_doc_add_field(docs[i], df);
517
340
  }
518
341
  }
@@ -521,8 +344,7 @@ static void prep_stde_test_docs(FrtDocument **docs, int doc_cnt, int num_words,
521
344
  }
522
345
 
523
346
  static void prep_test_1seg_index(FrtStore *store, FrtDocument **docs,
524
- int doc_cnt, FrtFieldInfos *fis)
525
- {
347
+ int doc_cnt, FrtFieldInfos *fis) {
526
348
  int i;
527
349
  FrtDocWriter *dw;
528
350
  FrtIndexWriter *iw;
@@ -548,8 +370,7 @@ static void prep_test_1seg_index(FrtStore *store, FrtDocument **docs,
548
370
  *
549
371
  ****************************************************************************/
550
372
 
551
- static void test_segment_term_doc_enum(TestCase *tc, void *data)
552
- {
373
+ static void test_segment_term_doc_enum(TestCase *tc, void *data) {
553
374
  int i, j;
554
375
  FrtStore *store = (FrtStore *)data;
555
376
  FrtFieldInfos *fis = prep_all_fis();
@@ -570,8 +391,8 @@ static void test_segment_term_doc_enum(TestCase *tc, void *data)
570
391
  sfi = frt_sfi_open(store, "_0");
571
392
  tir = frt_tir_open(store, sfi, "_0");
572
393
  skip_interval = ((FrtSegmentTermEnum *)tir->orig_te)->skip_interval;
573
- frq_in = store->open_input(store, "_0.frq");
574
- prx_in = store->open_input(store, "_0.prx");
394
+ frq_in = store->open_input(store, segm_idx_name, "_0.frq");
395
+ prx_in = store->open_input(store, segm_idx_name, "_0.prx");
575
396
  tde = frt_stde_new(tir, frq_in, bv, skip_interval);
576
397
  tde_reader = frt_stde_new(tir, frq_in, bv, skip_interval);
577
398
  tde_skip_to = frt_stde_new(tir, frq_in, bv, skip_interval);
@@ -614,7 +435,6 @@ static void test_segment_term_doc_enum(TestCase *tc, void *data)
614
435
  tde_reader->close(tde_reader);
615
436
  tde_skip_to->close(tde_skip_to);
616
437
 
617
-
618
438
  tde = frt_stpe_new(tir, frq_in, prx_in, bv, skip_interval);
619
439
  tde_skip_to = frt_stpe_new(tir, frq_in, prx_in, bv, skip_interval);
620
440
 
@@ -645,7 +465,6 @@ static void test_segment_term_doc_enum(TestCase *tc, void *data)
645
465
  Atrue(! tde->next(tde));
646
466
  Atrue(! tde->skip_to(tde, 0));
647
467
  Atrue(! tde->skip_to(tde, 1000000));
648
-
649
468
  }
650
469
  tde->close(tde);
651
470
  tde_skip_to->close(tde_skip_to);
@@ -663,8 +482,7 @@ static void test_segment_term_doc_enum(TestCase *tc, void *data)
663
482
  const char *double_word = "word word";
664
483
  const char *triple_word = "word word word";
665
484
 
666
- static void test_segment_tde_deleted_docs(TestCase *tc, void *data)
667
- {
485
+ static void test_segment_tde_deleted_docs(TestCase *tc, void *data) {
668
486
  int i, doc_num_expected, skip_interval;
669
487
  FrtStore *store = (FrtStore *)data;
670
488
  FrtDocWriter *dw;
@@ -686,8 +504,7 @@ static void test_segment_tde_deleted_docs(TestCase *tc, void *data)
686
504
  frt_bv_set(bv, i);
687
505
  Aiequal(1, frt_bv_get(bv, i));
688
506
  frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("f")), (char *)double_word, enc));
689
- }
690
- else {
507
+ } else {
691
508
  frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("f")), (char *)triple_word, enc));
692
509
  }
693
510
  frt_dw_add_doc(dw, doc);
@@ -699,8 +516,8 @@ static void test_segment_tde_deleted_docs(TestCase *tc, void *data)
699
516
 
700
517
  sfi = frt_sfi_open(store, "_0");
701
518
  tir = frt_tir_open(store, sfi, "_0");
702
- frq_in = store->open_input(store, "_0.frq");
703
- prx_in = store->open_input(store, "_0.prx");
519
+ frq_in = store->open_input(store, segm_idx_name, "_0.frq");
520
+ prx_in = store->open_input(store, segm_idx_name, "_0.prx");
704
521
  skip_interval = sfi->skip_interval;
705
522
  tde = frt_stpe_new(tir, frq_in, prx_in, bv, skip_interval);
706
523
 
@@ -734,21 +551,19 @@ static void test_segment_tde_deleted_docs(TestCase *tc, void *data)
734
551
  *
735
552
  ****************************************************************************/
736
553
 
737
- static void test_index_create(TestCase *tc, void *data)
738
- {
554
+ static void test_index_create(TestCase *tc, void *data) {
739
555
  FrtStore *store = (FrtStore *)data;
740
556
  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);
741
557
  (void)tc;
742
558
 
743
- store->clear_all(store);
744
- Assert(!store->exists(store, "segments"), "segments shouldn't exist yet");
559
+ store->clear_all(store, segm_idx_name);
560
+ Assert(!store->exists(store, segm_idx_name, "segments"), "segments shouldn't exist yet");
745
561
  frt_index_create(store, fis);
746
- Assert(store->exists(store, "segments"), "segments should now exist");
562
+ Assert(store->exists(store, segm_idx_name, "segments"), "segments should now exist");
747
563
  frt_fis_deref(fis);
748
564
  }
749
565
 
750
- static void test_index_version(TestCase *tc, void *data)
751
- {
566
+ static void test_index_version(TestCase *tc, void *data) {
752
567
  frt_u64 version;
753
568
  FrtStore *store = (FrtStore *)data;
754
569
  FrtIndexWriter *iw = create_book_iw(store);
@@ -773,8 +588,7 @@ static void test_index_version(TestCase *tc, void *data)
773
588
  frt_ir_close(ir);
774
589
  }
775
590
 
776
- static void test_index_undelete_all_after_close(TestCase *tc, void *data)
777
- {
591
+ static void test_index_undelete_all_after_close(TestCase *tc, void *data) {
778
592
  FrtStore *store = (FrtStore *)data;
779
593
  FrtIndexWriter *iw = create_book_iw(store);
780
594
  FrtIndexReader *ir;
@@ -801,8 +615,7 @@ static void test_index_undelete_all_after_close(TestCase *tc, void *data)
801
615
  *
802
616
  ****************************************************************************/
803
617
 
804
- static void test_fld_inverter(TestCase *tc, void *data)
805
- {
618
+ static void test_fld_inverter(TestCase *tc, void *data) {
806
619
  FrtStore *store = (FrtStore *)data;
807
620
  FrtHash *plists;
808
621
  FrtHash *curr_plists;
@@ -816,9 +629,9 @@ static void test_fld_inverter(TestCase *tc, void *data)
816
629
  dw = frt_dw_open(iw, frt_sis_new_segment(iw->sis, 0, iw->store));
817
630
 
818
631
  df = frt_df_new(rb_intern("no tv"));
819
- frt_df_add_data(df, (char *)"one two three four five two three four five three four five four five", enc);
820
- frt_df_add_data(df, (char *)"ichi ni san yon go ni san yon go san yon go yon go go", enc);
821
- frt_df_add_data(df, (char *)"The quick brown fox jumped over five lazy dogs", enc);
632
+ frt_df_add_data(df, "one two three four five two three four five three four five four five", enc);
633
+ frt_df_add_data(df, "ichi ni san yon go ni san yon go san yon go yon go go", enc);
634
+ frt_df_add_data(df, "The quick brown fox jumped over five lazy dogs", enc);
822
635
 
823
636
  curr_plists = frt_dw_invert_field(
824
637
  dw,
@@ -830,7 +643,6 @@ static void test_fld_inverter(TestCase *tc, void *data)
830
643
  plists = ((FrtFieldInverter *)frt_h_get_int(
831
644
  dw->fields, frt_fis_get_field(dw->fis, df->name)->number))->plists;
832
645
 
833
-
834
646
  pl = (FrtPostingList *)frt_h_get(curr_plists, "one");
835
647
  if (Apnotnull(pl)) {
836
648
  Asequal("one", pl->term);
@@ -862,8 +674,8 @@ static void test_fld_inverter(TestCase *tc, void *data)
862
674
  frt_df_destroy(df);
863
675
 
864
676
  df = frt_df_new(rb_intern("no tv"));
865
- frt_df_add_data(df, (char *)"seven new words and six old ones", enc);
866
- frt_df_add_data(df, (char *)"ichi ni one two quick dogs", enc);
677
+ frt_df_add_data(df, "seven new words and six old ones", enc);
678
+ frt_df_add_data(df, "ichi ni one two quick dogs", enc);
867
679
 
868
680
  dw->doc_num++;
869
681
  frt_dw_reset_postings(dw->curr_plists);
@@ -900,8 +712,7 @@ static void test_fld_inverter(TestCase *tc, void *data)
900
712
  }
901
713
 
902
714
  #define NUM_POSTINGS TEST_WORD_LIST_SIZE
903
- static void test_postings_sorter(TestCase *tc, void *data)
904
- {
715
+ static void test_postings_sorter(TestCase *tc, void *data) {
905
716
  int i;
906
717
  FrtPostingList plists[NUM_POSTINGS], *p_ptr[NUM_POSTINGS];
907
718
  (void)data, (void)tc;
@@ -919,8 +730,7 @@ static void test_postings_sorter(TestCase *tc, void *data)
919
730
  }
920
731
  }
921
732
 
922
- static void test_iw_add_doc(TestCase *tc, void *data)
923
- {
733
+ static void test_iw_add_doc(TestCase *tc, void *data) {
924
734
  FrtStore *store = (FrtStore *)data;
925
735
  FrtIndexWriter *iw = create_book_iw(store);
926
736
  FrtDocument **docs = prep_book_list();
@@ -929,20 +739,20 @@ static void test_iw_add_doc(TestCase *tc, void *data)
929
739
  Aiequal(1, frt_iw_doc_count(iw));
930
740
  // Assert(!store->exists(store, "_0.fdx"), "data shouldn't have been written yet");
931
741
  frt_iw_commit(iw);
932
- Assert(store->exists(store, "_0.fdx"), "data should now be written");
742
+ Assert(store->exists(store, segm_idx_name, "_0.fdx"), "data should now be written");
933
743
  frt_iw_close(iw);
934
- Assert(store->exists(store, "_0.fdx"), "data should still be there");
744
+ Assert(store->exists(store, segm_idx_name, "_0.fdx"), "data should still be there");
935
745
 
936
746
  iw = frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), &frt_default_config);
937
747
  frt_iw_add_doc(iw, docs[1]);
938
748
  Aiequal(2, frt_iw_doc_count(iw));
939
749
  // Assert(!store->exists(store, "_1.fdx"), "data shouldn't have been written yet");
940
- Assert(store->exists(store, "_0.fdx"), "data should still be there");
750
+ Assert(store->exists(store, segm_idx_name, "_0.fdx"), "data should still be there");
941
751
  frt_iw_commit(iw);
942
- Assert(store->exists(store, "_1.fdx"), "data should now be written");
752
+ Assert(store->exists(store, segm_idx_name, "_1.fdx"), "data should now be written");
943
753
  frt_iw_close(iw);
944
- Assert(store->exists(store, "_1.fdx"), "data should still be there");
945
- Assert(store->exists(store, "_0.fdx"), "data should still be there");
754
+ Assert(store->exists(store, segm_idx_name, "_1.fdx"), "data should still be there");
755
+ Assert(store->exists(store, segm_idx_name, "_0.fdx"), "data should still be there");
946
756
 
947
757
  destroy_docs(docs, BOOK_LIST_LENGTH);
948
758
  }
@@ -952,14 +762,14 @@ static void test_iw_add_doc(TestCase *tc, void *data)
952
762
  * reader holds it open (this fails pre lock-less
953
763
  * commits on windows):
954
764
  */
955
- static void test_create_with_reader(TestCase *tc, void *data)
956
- {
765
+ static void test_create_with_reader(TestCase *tc, void *data) {
957
766
  FrtStore *store = frt_open_mdbx_store(TEST_DIR);
767
+ store->create_folder(store, segm_idx_name);
958
768
  (void)data;
959
769
  FrtIndexWriter *iw;
960
770
  FrtIndexReader *ir, *ir2;
961
771
  FrtDocument *doc = prep_book();
962
- store->clear_all(store);
772
+ store->clear_all(store, segm_idx_name);
963
773
 
964
774
  /* add one document & close writer */
965
775
  iw = create_book_iw(store);
@@ -981,7 +791,7 @@ static void test_create_with_reader(TestCase *tc, void *data)
981
791
  Aiequal(1, ir2->num_docs(ir));
982
792
  frt_ir_close(ir);
983
793
  frt_ir_close(ir2);
984
- store->clear_all(store);
794
+ store->clear_all(store, segm_idx_name);
985
795
  frt_store_close(store);
986
796
  frt_doc_destroy(doc);
987
797
  }
@@ -992,8 +802,7 @@ static void test_create_with_reader(TestCase *tc, void *data)
992
802
  * gracefully fallback to the previous segments file),
993
803
  * and that we can add to the index:
994
804
  */
995
- static void test_simulated_crashed_writer(TestCase *tc, void *data)
996
- {
805
+ static void test_simulated_crashed_writer(TestCase *tc, void *data) {
997
806
  int i;
998
807
  long gen;
999
808
  frt_off_t length;
@@ -1025,8 +834,8 @@ static void test_simulated_crashed_writer(TestCase *tc, void *data)
1025
834
  * writing segments file: */
1026
835
  frt_sis_curr_seg_file_name(file_name_in, store);
1027
836
  frt_fn_for_generation(file_name_out, FRT_SEGMENTS_FILE_NAME, NULL, 1 + gen);
1028
- is = store->open_input(store, file_name_in);
1029
- os = store->new_output(store, file_name_out);
837
+ is = store->open_input(store, segm_idx_name, file_name_in);
838
+ os = store->new_output(store, segm_idx_name, file_name_out);
1030
839
  length = frt_is_length(is);
1031
840
  for(i = 0; i < length - 1; i++) {
1032
841
  frt_os_write_byte(os, frt_is_read_byte(is));
@@ -1053,8 +862,7 @@ static void test_simulated_crashed_writer(TestCase *tc, void *data)
1053
862
  * latest segments file and make sure we get an
1054
863
  * IOException trying to open the index:
1055
864
  */
1056
- static void test_simulated_corrupt_index1(TestCase *tc, void *data)
1057
- {
865
+ static void test_simulated_corrupt_index1(TestCase *tc, void *data) {
1058
866
  int i;
1059
867
  long gen;
1060
868
  frt_off_t length;
@@ -1086,15 +894,15 @@ static void test_simulated_corrupt_index1(TestCase *tc, void *data)
1086
894
  * writing segments file: */
1087
895
  frt_sis_curr_seg_file_name(file_name_in, store);
1088
896
  frt_fn_for_generation(file_name_out, FRT_SEGMENTS_FILE_NAME, "", 1 + gen);
1089
- is = store->open_input(store, file_name_in);
1090
- os = store->new_output(store, file_name_out);
897
+ is = store->open_input(store, segm_idx_name, file_name_in);
898
+ os = store->new_output(store, segm_idx_name, file_name_out);
1091
899
  length = frt_is_length(is);
1092
900
  for(i = 0; i < length - 1; i++) {
1093
901
  frt_os_write_byte(os, frt_is_read_byte(is));
1094
902
  }
1095
903
  frt_is_close(is);
1096
904
  frt_os_close(os);
1097
- store->remove(store, file_name_in);
905
+ store->remove(store, segm_idx_name, file_name_in);
1098
906
 
1099
907
  FRT_TRY
1100
908
  ir = frt_ir_open(NULL, store);
@@ -1116,8 +924,7 @@ static void test_simulated_corrupt_index1(TestCase *tc, void *data)
1116
924
  * files and make sure we get an IOException trying to
1117
925
  * open the index:
1118
926
  */
1119
- static void test_simulated_corrupt_index2(TestCase *tc, void *data)
1120
- {
927
+ static void test_simulated_corrupt_index2(TestCase *tc, void *data) {
1121
928
  int i;
1122
929
  long gen;
1123
930
  FrtStore *store = (FrtStore *)data;
@@ -1139,8 +946,8 @@ static void test_simulated_corrupt_index2(TestCase *tc, void *data)
1139
946
  /* segment generation should be > 1 */
1140
947
  Atrue(gen > 1);
1141
948
 
1142
- Atrue(store->exists(store, "_0.fdx"));
1143
- store->remove(store, "_0.fdx");
949
+ Atrue(store->exists(store, segm_idx_name, "_0.fdx"));
950
+ store->remove(store, segm_idx_name, "_0.fdx");
1144
951
 
1145
952
  FRT_TRY
1146
953
  ir = frt_ir_open(NULL, store);
@@ -1156,8 +963,7 @@ static void test_simulated_corrupt_index2(TestCase *tc, void *data)
1156
963
  destroy_docs(docs, BOOK_LIST_LENGTH);
1157
964
  }
1158
965
 
1159
- static void test_iw_add_docs(TestCase *tc, void *data)
1160
- {
966
+ static void test_iw_add_docs(TestCase *tc, void *data) {
1161
967
  int i;
1162
968
  FrtConfig config = frt_default_config;
1163
969
  FrtStore *store = (FrtStore *)data;
@@ -1174,15 +980,14 @@ static void test_iw_add_docs(TestCase *tc, void *data)
1174
980
 
1175
981
  frt_iw_close(iw);
1176
982
  destroy_docs(docs, BOOK_LIST_LENGTH);
1177
- if (!Aiequal(11, store->count(store))) {
1178
- char *buf = frt_store_to_s(store);
983
+ if (!Aiequal(11, store->count(store, segm_idx_name))) {
984
+ char *buf = frt_store_folder_to_s(store, segm_idx_name);
1179
985
  Tmsg("To many files: %s\n", buf);
1180
986
  free(buf);
1181
987
  }
1182
988
  }
1183
989
 
1184
- void test_iw_add_empty_tv(TestCase *tc, void *data)
1185
- {
990
+ void test_iw_add_empty_tv(TestCase *tc, void *data) {
1186
991
  FrtStore *store = (FrtStore *)data;
1187
992
  FrtIndexWriter *iw;
1188
993
  FrtDocument *doc;
@@ -1195,9 +1000,9 @@ void test_iw_add_empty_tv(TestCase *tc, void *data)
1195
1000
 
1196
1001
  iw = frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), &frt_default_config);
1197
1002
  doc = frt_doc_new();
1198
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("tv1")), (char *)"", enc));
1199
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("tv2")), (char *)"", enc));
1200
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("no_tv")), (char *)"one two three", enc));
1003
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("tv1")), "", enc));
1004
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("tv2")), "", enc));
1005
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("no_tv")), "one two three", enc));
1201
1006
 
1202
1007
  frt_iw_add_doc(iw, doc);
1203
1008
  frt_iw_commit(iw);
@@ -1206,8 +1011,7 @@ void test_iw_add_empty_tv(TestCase *tc, void *data)
1206
1011
  frt_doc_destroy(doc);
1207
1012
  }
1208
1013
 
1209
- static void test_iw_del_terms(TestCase *tc, void *data)
1210
- {
1014
+ static void test_iw_del_terms(TestCase *tc, void *data) {
1211
1015
  int i;
1212
1016
  FrtConfig config = frt_default_config;
1213
1017
  FrtStore *store = (FrtStore *)data;
@@ -1228,7 +1032,7 @@ static void test_iw_del_terms(TestCase *tc, void *data)
1228
1032
 
1229
1033
  ir = frt_ir_open(NULL, store);
1230
1034
  Aiequal(BOOK_LIST_LENGTH, ir->num_docs(ir));
1231
- Aiequal(BOOK_LIST_LENGTH, ir->max_doc(ir));
1035
+ Aiequal(BOOK_LIST_LENGTH, ir->max_doc_num(ir));
1232
1036
  frt_ir_close(ir);
1233
1037
 
1234
1038
  iw = frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), &config);
@@ -1237,7 +1041,7 @@ static void test_iw_del_terms(TestCase *tc, void *data)
1237
1041
 
1238
1042
  ir = frt_ir_open(NULL, store);
1239
1043
  Aiequal(BOOK_LIST_LENGTH - 1, ir->num_docs(ir));
1240
- Aiequal(BOOK_LIST_LENGTH, ir->max_doc(ir));
1044
+ Aiequal(BOOK_LIST_LENGTH, ir->max_doc_num(ir));
1241
1045
  frt_ir_close(ir);
1242
1046
 
1243
1047
  /* test deleting multiple Terms */
@@ -1252,7 +1056,7 @@ static void test_iw_del_terms(TestCase *tc, void *data)
1252
1056
 
1253
1057
  ir = frt_ir_open(NULL, store);
1254
1058
  Aiequal(BOOK_LIST_LENGTH - 17, ir->num_docs(ir));
1255
- Aiequal(BOOK_LIST_LENGTH, ir->max_doc(ir));
1059
+ Aiequal(BOOK_LIST_LENGTH, ir->max_doc_num(ir));
1256
1060
  Atrue(!ir->is_deleted(ir, 0));
1257
1061
  Atrue(ir->is_deleted(ir, 1));
1258
1062
  Atrue(ir->is_deleted(ir, 2));
@@ -1284,7 +1088,7 @@ static void test_iw_del_terms(TestCase *tc, void *data)
1284
1088
 
1285
1089
  ir = frt_ir_open(NULL, store);
1286
1090
  Aiequal(BOOK_LIST_LENGTH - 17, ir->num_docs(ir));
1287
- Aiequal(BOOK_LIST_LENGTH - 17, ir->max_doc(ir));
1091
+ Aiequal(BOOK_LIST_LENGTH - 17, ir->max_doc_num(ir));
1288
1092
  frt_ir_close(ir);
1289
1093
  }
1290
1094
 
@@ -1304,8 +1108,7 @@ typedef struct ReaderTestEnvironment {
1304
1108
  int store_cnt;
1305
1109
  } ReaderTestEnvironment;
1306
1110
 
1307
- static void reader_test_env_destroy(ReaderTestEnvironment *rte)
1308
- {
1111
+ static void reader_test_env_destroy(ReaderTestEnvironment *rte) {
1309
1112
  int i;
1310
1113
  for (i = 0; i < rte->store_cnt; i++) {
1311
1114
  frt_store_close(rte->stores[i]);
@@ -1314,12 +1117,10 @@ static void reader_test_env_destroy(ReaderTestEnvironment *rte)
1314
1117
  free(rte);
1315
1118
  }
1316
1119
 
1317
- static FrtIndexReader *reader_test_env_ir_open(ReaderTestEnvironment *rte)
1318
- {
1120
+ static FrtIndexReader *reader_test_env_ir_open(ReaderTestEnvironment *rte) {
1319
1121
  if (rte->store_cnt == 1) {
1320
1122
  return frt_ir_open(NULL, rte->stores[0]);
1321
- }
1322
- else {
1123
+ } else {
1323
1124
  FrtIndexReader **sub_readers = FRT_ALLOC_N(FrtIndexReader *, rte->store_cnt);
1324
1125
  int i;
1325
1126
  for (i = 0; i < rte->store_cnt; i++) {
@@ -1330,8 +1131,7 @@ static FrtIndexReader *reader_test_env_ir_open(ReaderTestEnvironment *rte)
1330
1131
  }
1331
1132
  }
1332
1133
 
1333
- static ReaderTestEnvironment *reader_test_env_new(int type)
1334
- {
1134
+ static ReaderTestEnvironment *reader_test_env_new(int type) {
1335
1135
  int i, j;
1336
1136
  FrtConfig config = frt_default_config;
1337
1137
  FrtIndexWriter *iw;
@@ -1344,6 +1144,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1344
1144
  rte->stores = FRT_ALLOC_N(FrtStore *, store_cnt);
1345
1145
  for (i = 0; i < store_cnt; i++) {
1346
1146
  FrtStore *store = rte->stores[i] = frt_open_ram_store(NULL);
1147
+ store->create_folder(store, segm_idx_name);
1347
1148
  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 | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
1348
1149
  int start_doc = i * doc_cnt;
1349
1150
  int end_doc = (i + 1) * doc_cnt;
@@ -1361,7 +1162,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1361
1162
  FrtDocument *doc = docs[j];
1362
1163
  /* add fields when needed. This is to make the FrtFieldInfos objects
1363
1164
  * different for multi_external_reader */
1364
- for (k = 0; k < doc->size; k++) {
1165
+ for (k = 0; k < doc->field_count; k++) {
1365
1166
  FrtDocField *df = doc->fields[k];
1366
1167
  fis = iw->fis;
1367
1168
  if (NULL == frt_fis_get_field(fis, df->name)) {
@@ -1374,11 +1175,11 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1374
1175
  } else if (text == df->name) {
1375
1176
  frt_fis_add_field(fis, frt_fi_new(text, 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1376
1177
  } else if (compressed_field_brotli == df->name) {
1377
- frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1178
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, 0 | FRT_FI_IS_STORED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1378
1179
  } else if (compressed_field_bzip2 == df->name) {
1379
- frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BZ2_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1180
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, 0 | FRT_FI_IS_STORED_BM | FRT_FI_COMPRESSION_BZ2_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1380
1181
  } else if (compressed_field_lz4 == df->name) {
1381
- frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_LZ4_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1182
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, 0 | FRT_FI_IS_STORED_BM | FRT_FI_COMPRESSION_LZ4_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1382
1183
  }
1383
1184
  }
1384
1185
  }
@@ -1391,6 +1192,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1391
1192
  if (type == add_indexes_reader_type) {
1392
1193
  /* Prepare store for Add Indexes test */
1393
1194
  FrtStore *store = frt_open_ram_store(NULL);
1195
+ store->create_folder(store, segm_idx_name);
1394
1196
  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 | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
1395
1197
  FrtIndexReader **readers = FRT_ALLOC_N(FrtIndexReader *, rte->store_cnt);
1396
1198
  int i;
@@ -1418,8 +1220,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1418
1220
  return rte;
1419
1221
  }
1420
1222
 
1421
- static void write_ir_test_docs(FrtStore *store)
1422
- {
1223
+ static void write_ir_test_docs(FrtStore *store) {
1423
1224
  int i;
1424
1225
  FrtConfig config = frt_default_config;
1425
1226
  FrtIndexWriter *iw;
@@ -1430,9 +1231,9 @@ static void write_ir_test_docs(FrtStore *store)
1430
1231
  frt_fis_add_field(fis, frt_fi_new(title, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
1431
1232
  frt_fis_add_field(fis, frt_fi_new(year, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM));
1432
1233
  frt_fis_add_field(fis, frt_fi_new(text, 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1433
- frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1434
- frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BZ2_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1435
- frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_LZ4_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1234
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, 0 | FRT_FI_IS_STORED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1235
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, 0 | FRT_FI_IS_STORED_BM | FRT_FI_COMPRESSION_BZ2_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1236
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, 0 | FRT_FI_IS_STORED_BM | FRT_FI_COMPRESSION_LZ4_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1436
1237
  frt_index_create(store, fis);
1437
1238
  frt_fis_deref(fis);
1438
1239
  config.max_buffered_docs = 5;
@@ -1447,10 +1248,9 @@ static void write_ir_test_docs(FrtStore *store)
1447
1248
  destroy_docs(docs, IR_TEST_DOC_CNT);
1448
1249
  }
1449
1250
 
1450
- static void test_ir_open_empty_index(TestCase *tc, void *data)
1451
- {
1251
+ static void test_ir_open_empty_index(TestCase *tc, void *data) {
1452
1252
  FrtStore *store = (FrtStore *)data;
1453
- store->clear_all(store);
1253
+ store->clear_all(store, segm_idx_name);
1454
1254
  FRT_TRY
1455
1255
  frt_ir_close(frt_ir_open(NULL, store));
1456
1256
  Afail("IndexReader should have failed when opening empty index");
@@ -1464,18 +1264,16 @@ static void test_ir_open_empty_index(TestCase *tc, void *data)
1464
1264
  FRT_XENDTRY
1465
1265
  }
1466
1266
 
1467
- static void test_ir_basic_ops(TestCase *tc, void *data)
1468
- {
1267
+ static void test_ir_basic_ops(TestCase *tc, void *data) {
1469
1268
  FrtIndexReader *ir = (FrtIndexReader *)data;
1470
1269
  Aiequal(IR_TEST_DOC_CNT, ir->num_docs(ir));
1471
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1270
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
1472
1271
 
1473
1272
  Aiequal(4, ir->doc_freq(ir, frt_fis_get_field(ir->fis, body)->number, "Wally"));
1474
1273
  Atrue(frt_ir_is_latest(ir));
1475
1274
  }
1476
1275
 
1477
- static void test_ir_term_docpos_enum_skip_to(TestCase *tc, FrtTermDocEnum *tde, int field_num)
1478
- {
1276
+ static void test_ir_term_docpos_enum_skip_to(TestCase *tc, FrtTermDocEnum *tde, int field_num) {
1479
1277
  /* test skip_to working skip interval */
1480
1278
  tde->seek(tde, field_num, "skip");
1481
1279
 
@@ -1509,8 +1307,7 @@ static void test_ir_term_docpos_enum_skip_to(TestCase *tc, FrtTermDocEnum *tde,
1509
1307
 
1510
1308
  #define AA3(x, a, b, c) x[0] = a; x[1] = b; x[2] = c;
1511
1309
 
1512
- static void test_ir_term_enum(TestCase *tc, void *data)
1513
- {
1310
+ static void test_ir_term_enum(TestCase *tc, void *data) {
1514
1311
  FrtIndexReader *ir = (FrtIndexReader *)data;
1515
1312
  FrtTermEnum *te = frt_ir_terms(ir, author);
1516
1313
 
@@ -1558,13 +1355,12 @@ static void test_ir_term_enum(TestCase *tc, void *data)
1558
1355
  te->close(te);
1559
1356
  }
1560
1357
 
1561
- static void test_ir_term_doc_enum(TestCase *tc, void *data)
1562
- {
1358
+ static void test_ir_term_doc_enum(TestCase *tc, void *data) {
1563
1359
  FrtIndexReader *ir = (FrtIndexReader *)data;
1564
1360
 
1565
1361
  FrtTermDocEnum *tde;
1566
1362
  FrtDocument *doc = frt_ir_get_doc_with_term(ir, tag, "id_test");
1567
- int docs[3], expected_docs[3];
1363
+ int doc_nums[3], expected_doc_nums[3];
1568
1364
  int freqs[3], expected_freqs[3];
1569
1365
 
1570
1366
  Apnotnull(doc);
@@ -1594,34 +1390,33 @@ static void test_ir_term_doc_enum(TestCase *tc, void *data)
1594
1390
 
1595
1391
  /* test fast read. Use a small array to exercise repeat read */
1596
1392
  tde->seek(tde, frt_fis_get_field(ir->fis, body)->number, "read");
1597
- Aiequal(3, tde->read(tde, docs, freqs, 3));
1393
+ Aiequal(3, tde->read(tde, doc_nums, freqs, 3));
1598
1394
  AA3(expected_freqs, 1, 2, 4);
1599
- AA3(expected_docs, 1, 2, 6);
1600
- Aaiequal(expected_docs, docs, 3);
1395
+ AA3(expected_doc_nums, 1, 2, 6);
1396
+ Aaiequal(expected_doc_nums, doc_nums, 3);
1601
1397
  Aaiequal(expected_freqs, freqs, 3);
1602
1398
 
1603
- Aiequal(3, tde->read(tde, docs, freqs, 3));
1604
- AA3(expected_docs, 9, 10, 15);
1399
+ Aiequal(3, tde->read(tde, doc_nums, freqs, 3));
1400
+ AA3(expected_doc_nums, 9, 10, 15);
1605
1401
  AA3(expected_freqs, 3, 1, 1);
1606
- Aaiequal(expected_docs, docs, 3);
1402
+ Aaiequal(expected_doc_nums, doc_nums, 3);
1607
1403
  Aaiequal(expected_freqs, freqs, 3);
1608
1404
 
1609
- Aiequal(3, tde->read(tde, docs, freqs, 3));
1610
- AA3(expected_docs, 16, 17, 20);
1405
+ Aiequal(3, tde->read(tde, doc_nums, freqs, 3));
1406
+ AA3(expected_doc_nums, 16, 17, 20);
1611
1407
  AA3(expected_freqs, 2, 1, 1);
1612
- Aaiequal(expected_docs, docs, 3);
1408
+ Aaiequal(expected_doc_nums, doc_nums, 3);
1613
1409
  Aaiequal(expected_freqs, freqs, 3);
1614
1410
 
1615
- Aiequal(1, tde->read(tde, docs, freqs, 3));
1616
- expected_docs[0] = 21;
1411
+ Aiequal(1, tde->read(tde, doc_nums, freqs, 3));
1412
+ expected_doc_nums[0] = 21;
1617
1413
  expected_freqs[0] = 6;
1618
- Aaiequal(expected_docs, docs, 1);
1414
+ Aaiequal(expected_doc_nums, doc_nums, 1);
1619
1415
  Aaiequal(expected_freqs, freqs, 1);
1620
1416
 
1621
- Aiequal(0, tde->read(tde, docs, freqs, 3));
1417
+ Aiequal(0, tde->read(tde, doc_nums, freqs, 3));
1622
1418
 
1623
- test_ir_term_docpos_enum_skip_to(tc, tde,
1624
- frt_fis_get_field(ir->fis, text)->number);
1419
+ test_ir_term_docpos_enum_skip_to(tc, tde, frt_fis_get_field(ir->fis, text)->number);
1625
1420
  tde->close(tde);
1626
1421
 
1627
1422
  /* test term positions */
@@ -1674,8 +1469,7 @@ static void test_ir_term_doc_enum(TestCase *tc, void *data)
1674
1469
  tde->close(tde);
1675
1470
  }
1676
1471
 
1677
- static void test_ir_term_vectors(TestCase *tc, void *data)
1678
- {
1472
+ static void test_ir_term_vectors(TestCase *tc, void *data) {
1679
1473
  FrtIndexReader *ir = (FrtIndexReader *)data;
1680
1474
  FrtHash *tvs;
1681
1475
  FrtTermVector *tv = ir->term_vector(ir, 3, rb_intern("body"));
@@ -1754,12 +1548,11 @@ static void test_ir_term_vectors(TestCase *tc, void *data)
1754
1548
  frt_h_destroy(tvs);
1755
1549
  }
1756
1550
 
1757
- static void test_ir_get_doc(TestCase *tc, void *data)
1758
- {
1551
+ static void test_ir_get_doc(TestCase *tc, void *data) {
1759
1552
  FrtIndexReader *ir = (FrtIndexReader *)data;
1760
1553
  FrtDocument *doc = ir->get_doc(ir, 3);
1761
1554
  FrtDocField *df;
1762
- Aiequal(4, doc->size);
1555
+ Aiequal(4, doc->field_count);
1763
1556
 
1764
1557
  df = frt_doc_get_field(doc, author);
1765
1558
  Asequal(rb_id2name(author), rb_id2name(df->name));
@@ -1768,8 +1561,7 @@ static void test_ir_get_doc(TestCase *tc, void *data)
1768
1561
 
1769
1562
  df = frt_doc_get_field(doc, body);
1770
1563
  Asequal(rb_id2name(body), rb_id2name(df->name));
1771
- Asequal("word3 word4 word1 word2 word1 "
1772
- "word3 word4 word1 word3 word3", df->data[0]);
1564
+ Asequal("word3 word4 word1 word2 word1 word3 word4 word1 word3 word3", df->data[0]);
1773
1565
  Afequal(df->boost, 1.0);
1774
1566
  df = frt_doc_get_field(doc, title);
1775
1567
  Asequal(rb_id2name(title), rb_id2name(df->name));
@@ -1787,8 +1579,7 @@ static void test_ir_get_doc(TestCase *tc, void *data)
1787
1579
  frt_doc_destroy(doc);
1788
1580
  }
1789
1581
 
1790
- static void test_ir_compression(TestCase *tc, void *data)
1791
- {
1582
+ static void test_ir_compression(TestCase *tc, void *data) {
1792
1583
  int i;
1793
1584
  FrtIndexReader *ir = (FrtIndexReader *)data;
1794
1585
  FrtLazyDoc *lz_doc;
@@ -1796,7 +1587,7 @@ static void test_ir_compression(TestCase *tc, void *data)
1796
1587
  FrtDocument *doc = ir->get_doc(ir, 0);
1797
1588
  FrtDocField *df1, *df2, *df3, *df4;
1798
1589
  char buf1[20], buf2[20];
1799
- Aiequal(5, doc->size);
1590
+ Aiequal(5, doc->field_count);
1800
1591
 
1801
1592
  df1 = frt_doc_get_field(doc, changing_field);
1802
1593
  df2 = frt_doc_get_field(doc, compressed_field_brotli);
@@ -1865,8 +1656,7 @@ static void test_ir_compression(TestCase *tc, void *data)
1865
1656
  frt_lazy_doc_close(lz_doc);
1866
1657
  }
1867
1658
 
1868
- static void test_ir_mtdpe(TestCase *tc, void *data)
1869
- {
1659
+ static void test_ir_mtdpe(TestCase *tc, void *data) {
1870
1660
  FrtIndexReader *ir = (FrtIndexReader *)data;
1871
1661
  const char *terms[3] = {"Where", "is", "books."};
1872
1662
 
@@ -1886,8 +1676,7 @@ static void test_ir_mtdpe(TestCase *tc, void *data)
1886
1676
  tde->close(tde);
1887
1677
  }
1888
1678
 
1889
- static void test_ir_norms(TestCase *tc, void *data)
1890
- {
1679
+ static void test_ir_norms(TestCase *tc, void *data) {
1891
1680
  int i;
1892
1681
  frt_uchar *norms;
1893
1682
  FrtIndexReader *ir, *ir2;
@@ -1982,10 +1771,10 @@ static void test_ir_norms(TestCase *tc, void *data)
1982
1771
  free(norms);
1983
1772
  }
1984
1773
 
1985
- static void test_ir_delete(TestCase *tc, void *data)
1986
- {
1774
+ static void test_ir_delete(TestCase *tc, void *data) {
1987
1775
  int i;
1988
1776
  FrtStore *store = frt_open_ram_store(NULL);
1777
+ store->create_folder(store, segm_idx_name);
1989
1778
  FrtIndexReader *ir, *ir2;
1990
1779
  FrtIndexWriter *iw;
1991
1780
  int type = *((int *)data);
@@ -1996,37 +1785,37 @@ static void test_ir_delete(TestCase *tc, void *data)
1996
1785
  ir2 = reader_test_env_ir_open(rte);
1997
1786
 
1998
1787
  Aiequal(false, ir->has_deletions(ir));
1999
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1788
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2000
1789
  Aiequal(IR_TEST_DOC_CNT, ir->num_docs(ir));
2001
1790
  Aiequal(false, ir->is_deleted(ir, 10));
2002
1791
 
2003
1792
  frt_ir_delete_doc(ir, 10);
2004
1793
  Aiequal(true, ir->has_deletions(ir));
2005
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1794
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2006
1795
  Aiequal(IR_TEST_DOC_CNT - 1, ir->num_docs(ir));
2007
1796
  Aiequal(true, ir->is_deleted(ir, 10));
2008
1797
 
2009
1798
  frt_ir_delete_doc(ir, 10);
2010
1799
  Aiequal(true, ir->has_deletions(ir));
2011
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1800
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2012
1801
  Aiequal(IR_TEST_DOC_CNT - 1, ir->num_docs(ir));
2013
1802
  Aiequal(true, ir->is_deleted(ir, 10));
2014
1803
 
2015
1804
  frt_ir_delete_doc(ir, IR_TEST_DOC_CNT - 1);
2016
1805
  Aiequal(true, ir->has_deletions(ir));
2017
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1806
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2018
1807
  Aiequal(IR_TEST_DOC_CNT - 2, ir->num_docs(ir));
2019
1808
  Aiequal(true, ir->is_deleted(ir, IR_TEST_DOC_CNT - 1));
2020
1809
 
2021
1810
  frt_ir_delete_doc(ir, IR_TEST_DOC_CNT - 2);
2022
1811
  Aiequal(true, ir->has_deletions(ir));
2023
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1812
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2024
1813
  Aiequal(IR_TEST_DOC_CNT - 3, ir->num_docs(ir));
2025
1814
  Aiequal(true, ir->is_deleted(ir, IR_TEST_DOC_CNT - 2));
2026
1815
 
2027
1816
  frt_ir_undelete_all(ir);
2028
1817
  Aiequal(false, ir->has_deletions(ir));
2029
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1818
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2030
1819
  Aiequal(IR_TEST_DOC_CNT, ir->num_docs(ir));
2031
1820
  Aiequal(false, ir->is_deleted(ir, 10));
2032
1821
  Aiequal(false, ir->is_deleted(ir, IR_TEST_DOC_CNT - 2));
@@ -2039,7 +1828,7 @@ static void test_ir_delete(TestCase *tc, void *data)
2039
1828
  frt_ir_delete_doc(ir, 50);
2040
1829
  frt_ir_delete_doc(ir, IR_TEST_DOC_CNT - 1);
2041
1830
  Aiequal(true, ir->has_deletions(ir));
2042
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1831
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2043
1832
  Aiequal(IR_TEST_DOC_CNT - 6, ir->num_docs(ir));
2044
1833
 
2045
1834
  frt_ir_close(ir);
@@ -2047,7 +1836,7 @@ static void test_ir_delete(TestCase *tc, void *data)
2047
1836
  ir = reader_test_env_ir_open(rte);
2048
1837
 
2049
1838
  Aiequal(true, ir->has_deletions(ir));
2050
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1839
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2051
1840
  Aiequal(IR_TEST_DOC_CNT - 6, ir->num_docs(ir));
2052
1841
  Aiequal(true, ir->is_deleted(ir, 10));
2053
1842
  Aiequal(true, ir->is_deleted(ir, 20));
@@ -2058,7 +1847,7 @@ static void test_ir_delete(TestCase *tc, void *data)
2058
1847
 
2059
1848
  frt_ir_undelete_all(ir);
2060
1849
  Aiequal(false, ir->has_deletions(ir));
2061
- Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
1850
+ Aiequal(IR_TEST_DOC_CNT, ir->max_doc_num(ir));
2062
1851
  Aiequal(IR_TEST_DOC_CNT, ir->num_docs(ir));
2063
1852
  Aiequal(false, ir->is_deleted(ir, 10));
2064
1853
  Aiequal(false, ir->is_deleted(ir, 20));
@@ -2085,7 +1874,7 @@ static void test_ir_delete(TestCase *tc, void *data)
2085
1874
  ir = reader_test_env_ir_open(rte);
2086
1875
 
2087
1876
  Aiequal(false, ir->has_deletions(ir));
2088
- Aiequal(IR_TEST_DOC_CNT - 6, ir->max_doc(ir));
1877
+ Aiequal(IR_TEST_DOC_CNT - 6, ir->max_doc_num(ir));
2089
1878
  Aiequal(IR_TEST_DOC_CNT - 6, ir->num_docs(ir));
2090
1879
 
2091
1880
  Atrue(frt_ir_is_latest(ir));
@@ -2097,8 +1886,7 @@ static void test_ir_delete(TestCase *tc, void *data)
2097
1886
  frt_store_close(store);
2098
1887
  }
2099
1888
 
2100
- static void test_ir_read_while_optimizing(TestCase *tc, void *data)
2101
- {
1889
+ static void test_ir_read_while_optimizing(TestCase *tc, void *data) {
2102
1890
  FrtStore *store = (FrtStore *)data;
2103
1891
  FrtIndexReader *ir;
2104
1892
  FrtIndexWriter *iw;
@@ -2117,8 +1905,7 @@ static void test_ir_read_while_optimizing(TestCase *tc, void *data)
2117
1905
  frt_ir_close(ir);
2118
1906
  }
2119
1907
 
2120
- static void test_ir_multivalue_fields(TestCase *tc, void *data)
2121
- {
1908
+ static void test_ir_multivalue_fields(TestCase *tc, void *data) {
2122
1909
  FrtStore *store = (FrtStore *)data;
2123
1910
  FrtIndexReader *ir;
2124
1911
  FrtFieldInfo *fi;
@@ -2135,13 +1922,13 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
2135
1922
  frt_fis_deref(fis);
2136
1923
  iw = frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), NULL);
2137
1924
 
2138
- df = frt_doc_add_field(doc, frt_df_add_data(frt_df_new(tag), (char *)"Ruby", enc));
2139
- frt_df_add_data(df, (char *)"C", enc);
2140
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(body), (char *)body_text, enc));
2141
- frt_df_add_data(df, (char *)"Lucene", enc);
2142
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(title), (char *)title_text, enc));
2143
- frt_df_add_data(df, (char *)"Ferret", enc);
2144
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(author), (char *)author_text, enc));
1925
+ df = frt_doc_add_field(doc, frt_df_add_data(frt_df_new(tag), "Ruby", enc));
1926
+ frt_df_add_data(df, "C", enc);
1927
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(body), body_text, enc));
1928
+ frt_df_add_data(df, "Lucene", enc);
1929
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(title), title_text, enc));
1930
+ frt_df_add_data(df, "Ferret", enc);
1931
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(author), author_text, enc));
2145
1932
 
2146
1933
  Aiequal(0, iw->fis->size);
2147
1934
 
@@ -2163,7 +1950,7 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
2163
1950
  ir = frt_ir_open(NULL, store);
2164
1951
 
2165
1952
  doc = ir->get_doc(ir, 0);
2166
- Aiequal(4, doc->size);
1953
+ Aiequal(4, doc->field_count);
2167
1954
  df = frt_doc_get_field(doc, tag);
2168
1955
  Aiequal(4, df->size);
2169
1956
  Asequal("Ruby", df->data[0]);
@@ -2193,12 +1980,12 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
2193
1980
  * IndexSuite
2194
1981
  *
2195
1982
  ***************************************************************************/
2196
- TestSuite *ts_index(TestSuite *suite)
2197
- {
1983
+ TestSuite *ts_index(TestSuite *suite) {
2198
1984
  FrtIndexReader *ir;
2199
- FrtStore *fs_store, *store = frt_open_ram_store(NULL);
1985
+ FrtStore *fs_store;
2200
1986
  ReaderTestEnvironment *rte = NULL;
2201
- /* FrtStore *store = frt_open_mdbx_store(TEST_DIR); */
1987
+ FrtStore *store = frt_open_mdbx_store(TEST_DIR);
1988
+ store->create_folder(store, segm_idx_name);
2202
1989
 
2203
1990
  /* initialize IDs */
2204
1991
  body = rb_intern("body");
@@ -2312,8 +2099,9 @@ TestSuite *ts_index(TestSuite *suite)
2312
2099
  tst_run_test_with_name(suite, test_ir_read_while_optimizing, store, "test_ir_read_while_optimizing_in_ram");
2313
2100
 
2314
2101
  fs_store = frt_open_mdbx_store(TEST_DIR);
2102
+ fs_store->create_folder(fs_store, segm_idx_name);
2315
2103
  tst_run_test_with_name(suite, test_ir_read_while_optimizing, fs_store, "test_ir_read_while_optimizing_on_disk");
2316
- fs_store->clear_all(fs_store);
2104
+ fs_store->clear_all(fs_store, segm_idx_name);
2317
2105
  frt_store_close(fs_store);
2318
2106
 
2319
2107
  tst_run_test(suite, test_ir_multivalue_fields, store);