isomorfeus-ferret 0.13.9 → 0.13.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 744efe9c78deef0c563e39ae29eb4e755f8afb493be0fe80416a55987db97ce7
4
- data.tar.gz: d1f814f14b5a6ef18f612e545b54b0a113544f994c22901e7204ae191ebb644e
3
+ metadata.gz: 0625b49341ee2fc35e80e673e368789532c06ce6c93e779072cacc1206847a4b
4
+ data.tar.gz: 7e81488d430471a37a872f80319efdcf8378e55dc4a583e33ff12bea942b9416
5
5
  SHA512:
6
- metadata.gz: 3fd11e3b3f0f04625c14b9b709d69ef6f1a1abdfdf5c50ad5e151a3fd87e300595e29639ac9455c66f8db5452d9569bb1585f6b2f9f57ac5c3103f2ff09bb8d1
7
- data.tar.gz: 27ace1a41fcc7557490865e740dfbe9906ce999288bb31306efa9b02f519552f9092391ff64a3ededc6a2285a0e78533a80d43ad48e85abc97c1a154e0060a67
6
+ metadata.gz: 38cf613eac98374898aa9a5c998cc3534d18d6badba3560cd1660413acd189cb6e618eba38f3bf828cef23fcafb9e44b2de349363b55585af9ea79927ff9b2cf
7
+ data.tar.gz: 88564c30711737b48bec8879df788b46e03b06a041a98aaf3147c7375ef0d313d48f789805303774b4d0ed4531603ee8baaa46935b81abafb6df8ba7ccdb56a6
@@ -6,7 +6,7 @@
6
6
  #define N 10
7
7
  #define write_byte(os, b) os->buf.buf[os->buf.pos++] = (frt_uchar)b
8
8
 
9
- void my_os_write_voff_t(FrtOutStream *os, register off_t num) {
9
+ void my_os_write_voff_t(FrtOutStream *os, register frt_off_t num) {
10
10
  if (!(num&0x7f)) {
11
11
  if (os->buf.pos >= FRT_BUFFER_SIZE) {
12
12
  frt_os_write_byte(os, (frt_uchar)num);
@@ -48,7 +48,7 @@ void my_os_write_voff_t(FrtOutStream *os, register off_t num) {
48
48
 
49
49
  static void vint_out(void) {
50
50
  int n;
51
- off_t i;
51
+ frt_off_t i;
52
52
  FrtOutStream *os;
53
53
 
54
54
  for (n = 0; n < N; n++) {
@@ -63,7 +63,7 @@ static void vint_out(void) {
63
63
 
64
64
  static void unrolled_vint_out(void) {
65
65
  int n;
66
- off_t i;
66
+ frt_off_t i;
67
67
  FrtOutStream *os;
68
68
 
69
69
  for (n = 0; n < N; n++) {
@@ -64,7 +64,7 @@ static inline int get_cp(char *start, char *end, int *cp_len, rb_encoding *enc)
64
64
  /*** FrtToken ****************************************************************/
65
65
  /*****************************************************************************/
66
66
 
67
- FrtToken *frt_tk_set(FrtToken *tk, char *text, int tlen, off_t start, off_t end, int pos_inc, rb_encoding *encoding) {
67
+ FrtToken *frt_tk_set(FrtToken *tk, char *text, int tlen, frt_off_t start, frt_off_t end, int pos_inc, rb_encoding *encoding) {
68
68
  if (tlen >= FRT_MAX_WORD_SIZE) {
69
69
  tlen = FRT_MAX_WORD_SIZE - 1; // TODO: this may invalidate mbc's
70
70
  }
@@ -92,7 +92,7 @@ static FrtToken *frt_tk_set_ts(FrtToken *tk, char *start, char *end, char *text,
92
92
  return frt_tk_set(tk, start, (int)(end - start), (off_t)(start - text), (off_t)(end - text), pos_inc, encoding);
93
93
  }
94
94
 
95
- FrtToken *frt_tk_set_no_len(FrtToken *tk, char *text, off_t start, off_t end, int pos_inc, rb_encoding *encoding) {
95
+ FrtToken *frt_tk_set_no_len(FrtToken *tk, char *text, frt_off_t start, frt_off_t end, int pos_inc, rb_encoding *encoding) {
96
96
  return frt_tk_set(tk, text, (int)strlen(text), start, end, pos_inc, encoding);
97
97
  }
98
98
 
@@ -13,15 +13,15 @@
13
13
  typedef struct FrtToken {
14
14
  char text[FRT_MAX_WORD_SIZE];
15
15
  int len;
16
- off_t start;
17
- off_t end;
16
+ frt_off_t start;
17
+ frt_off_t end;
18
18
  int pos_inc;
19
19
  } FrtToken;
20
20
 
21
21
  extern FrtToken *frt_tk_new();
22
22
  extern void frt_tk_destroy(void *p);
23
- extern FrtToken *frt_tk_set(FrtToken *tk, char *text, int tlen, off_t start, off_t end, int pos_inc, rb_encoding *encoding);
24
- extern FrtToken *frt_tk_set_no_len(FrtToken *tk, char *text, off_t start, off_t end, int pos_inc, rb_encoding *encoding);
23
+ extern FrtToken *frt_tk_set(FrtToken *tk, char *text, int tlen, frt_off_t start, frt_off_t end, int pos_inc, rb_encoding *encoding);
24
+ extern FrtToken *frt_tk_set_no_len(FrtToken *tk, char *text, frt_off_t start, frt_off_t end, int pos_inc, rb_encoding *encoding);
25
25
  extern int frt_tk_eq(FrtToken *tk1, FrtToken *tk2);
26
26
  extern int frt_tk_cmp(FrtToken *tk1, FrtToken *tk2);
27
27
 
@@ -12,8 +12,8 @@ extern FrtStore *frt_store_new();
12
12
  ****************************************************************************/
13
13
 
14
14
  typedef struct FileEntry {
15
- off_t offset;
16
- off_t length;
15
+ frt_off_t offset;
16
+ frt_off_t length;
17
17
  } FileEntry;
18
18
 
19
19
  static void cmpd_touch(FrtStore *store, const char *file_name) {
@@ -76,7 +76,7 @@ static void cmpd_close_i(FrtStore *store) {
76
76
  free(store->dir.cmpd);
77
77
  }
78
78
 
79
- static off_t cmpd_length(FrtStore *store, const char *file_name) {
79
+ static frt_off_t cmpd_length(FrtStore *store, const char *file_name) {
80
80
  FileEntry *fe = (FileEntry *)frt_h_get(store->dir.cmpd->entries, file_name);
81
81
  if (fe != NULL) {
82
82
  return fe->length;
@@ -85,7 +85,7 @@ static off_t cmpd_length(FrtStore *store, const char *file_name) {
85
85
  }
86
86
  }
87
87
 
88
- static void cmpdi_seek_i(FrtInStream *is, off_t pos) {
88
+ static void cmpdi_seek_i(FrtInStream *is, frt_off_t pos) {
89
89
  (void)is;
90
90
  (void)pos;
91
91
  }
@@ -95,7 +95,7 @@ static void cmpdi_close_i(FrtInStream *is) {
95
95
  free(is->d.cis);
96
96
  }
97
97
 
98
- static off_t cmpdi_length_i(FrtInStream *is) {
98
+ static frt_off_t cmpdi_length_i(FrtInStream *is) {
99
99
  return (is->d.cis->length);
100
100
  }
101
101
 
@@ -104,7 +104,7 @@ static off_t cmpdi_length_i(FrtInStream *is) {
104
104
  */
105
105
  static void cmpdi_read_i(FrtInStream *is, frt_uchar *b, int len) {
106
106
  FrtCompoundInStream *cis = is->d.cis;
107
- off_t start = frt_is_pos(is);
107
+ frt_off_t start = frt_is_pos(is);
108
108
 
109
109
  if ((start + len) > cis->length) {
110
110
  FRT_RAISE(FRT_EOF_ERROR, "Tried to read past end of file. File length is "
@@ -123,7 +123,7 @@ static const struct FrtInStreamMethods CMPD_IN_STREAM_METHODS = {
123
123
  cmpdi_close_i
124
124
  };
125
125
 
126
- static FrtInStream *cmpd_create_input(FrtInStream *sub_is, off_t offset, off_t length) {
126
+ static FrtInStream *cmpd_create_input(FrtInStream *sub_is, frt_off_t offset, frt_off_t length) {
127
127
  FrtInStream *is = frt_is_new();
128
128
  FrtCompoundInStream *cis = FRT_ALLOC(FrtCompoundInStream);
129
129
 
@@ -182,7 +182,7 @@ static void cmpd_close_lock_i(FrtLock *lock) {
182
182
 
183
183
  FrtStore *frt_open_cmpd_store(FrtStore *store, const char *name) {
184
184
  int count, i;
185
- off_t offset;
185
+ frt_off_t offset;
186
186
  char *fname;
187
187
  FileEntry *volatile entry = NULL;
188
188
  FrtStore *new_store = NULL;
@@ -273,9 +273,9 @@ void frt_cw_add_file(FrtCompoundWriter *cw, char *id) {
273
273
  }
274
274
 
275
275
  static void cw_copy_file(FrtCompoundWriter *cw, FrtCWFileEntry *src, FrtOutStream *os) {
276
- off_t start_ptr = frt_os_pos(os);
277
- off_t end_ptr;
278
- off_t remainder, length, len;
276
+ frt_off_t start_ptr = frt_os_pos(os);
277
+ frt_off_t end_ptr;
278
+ frt_off_t remainder, length, len;
279
279
  frt_uchar buffer[FRT_BUFFER_SIZE];
280
280
 
281
281
  FrtInStream *is = cw->store->open_input(cw->store, src->name);
@@ -1,6 +1,8 @@
1
1
  #ifndef FRT_DEFINES_H
2
2
  #define FRT_DEFINES_H
3
3
 
4
+ #define _FILE_OFFSET_BITS 64
5
+
4
6
  #include <sys/types.h>
5
7
  #include <limits.h>
6
8
  #include "frt_posh.h"
@@ -24,6 +26,12 @@ typedef posh_i32_t frt_i32;
24
26
  typedef posh_u64_t frt_u64;
25
27
  typedef posh_i64_t frt_i64;
26
28
 
29
+ #if defined POSH_OS_WIN64
30
+ typedef off64_t frt_off_t;
31
+ #else
32
+ typedef off_t frt_off_t;
33
+ #endif
34
+
27
35
  #if ( LONG_MAX == 2147483647 ) && defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
28
36
  #define FRT_OFF_T_PFX "ll"
29
37
  #else
@@ -225,7 +225,7 @@ static void fs_destroy(FrtStore *store)
225
225
  free(store->dir.path);
226
226
  }
227
227
 
228
- static off_t fs_length(FrtStore *store, const char *filename)
228
+ static frt_off_t fs_length(FrtStore *store, const char *filename)
229
229
  {
230
230
  char path[FRT_MAX_FILE_PATH];
231
231
  struct stat stt;
@@ -247,9 +247,12 @@ static void fso_flush_i(FrtOutStream *os, const frt_uchar *src, int len)
247
247
  }
248
248
  }
249
249
 
250
- static void fso_seek_i(FrtOutStream *os, off_t pos)
251
- {
250
+ static void fso_seek_i(FrtOutStream *os, frt_off_t pos) {
251
+ #if (defined POSH_OS_WIN32 || defined POSH_OS_WIN64)
252
+ if (_lseeki64(os->file.fd, pos, SEEK_SET) < 0) {
253
+ #else
252
254
  if (lseek(os->file.fd, pos, SEEK_SET) < 0) {
255
+ #endif
253
256
  FRT_RAISE(FRT_IO_ERROR, "seeking position %"FRT_OFF_T_PFX"d: <%s>",
254
257
  pos, strerror(errno));
255
258
  }
@@ -286,7 +289,7 @@ static FrtOutStream *fs_new_output(FrtStore *store, const char *filename)
286
289
  static void fsi_read_i(FrtInStream *is, frt_uchar *path, int len)
287
290
  {
288
291
  int fd = is->f->file.fd;
289
- off_t pos = frt_is_pos(is);
292
+ frt_off_t pos = frt_is_pos(is);
290
293
  if (pos != lseek(fd, 0, SEEK_CUR)) {
291
294
  lseek(fd, pos, SEEK_SET);
292
295
  }
@@ -299,9 +302,12 @@ static void fsi_read_i(FrtInStream *is, frt_uchar *path, int len)
299
302
  }
300
303
  }
301
304
 
302
- static void fsi_seek_i(FrtInStream *is, off_t pos)
303
- {
305
+ static void fsi_seek_i(FrtInStream *is, frt_off_t pos) {
306
+ #if (defined POSH_OS_WIN32 || defined POSH_OS_WIN64)
307
+ if (_lseeki64(is->f->file.fd, pos, SEEK_SET) < 0) {
308
+ #else
304
309
  if (lseek(is->f->file.fd, pos, SEEK_SET) < 0) {
310
+ #endif
305
311
  FRT_RAISE(FRT_IO_ERROR, "seeking pos %"FRT_OFF_T_PFX"d: <%s>",
306
312
  pos, strerror(errno));
307
313
  }
@@ -315,7 +321,7 @@ static void fsi_close_i(FrtInStream *is)
315
321
  if (is->d.path) free(is->d.path);
316
322
  }
317
323
 
318
- static off_t fsi_length_i(FrtInStream *is)
324
+ static frt_off_t fsi_length_i(FrtInStream *is)
319
325
  {
320
326
  struct stat stt;
321
327
  if (fstat(is->f->file.fd, &stt)) {
@@ -1565,7 +1565,7 @@ static void frt_fr_read_compressed_fields(FrtFieldsReader *fr, FrtDocField *df,
1565
1565
  FrtDocument *frt_fr_get_doc(FrtFieldsReader *fr, int doc_num)
1566
1566
  {
1567
1567
  int i, j;
1568
- off_t pos;
1568
+ frt_off_t pos;
1569
1569
  int stored_cnt;
1570
1570
  FrtDocument *doc = frt_doc_new();
1571
1571
  FrtInStream *fdx_in = fr->fdx_in;
@@ -1612,7 +1612,7 @@ FrtLazyDoc *frt_fr_get_lazy_doc(FrtFieldsReader *fr, int doc_num)
1612
1612
  {
1613
1613
  int start = 0;
1614
1614
  int i, j;
1615
- off_t pos;
1615
+ frt_off_t pos;
1616
1616
  int stored_cnt;
1617
1617
  FrtLazyDoc *lazy_doc;
1618
1618
  FrtInStream *fdx_in = fr->fdx_in;
@@ -1642,7 +1642,7 @@ FrtLazyDoc *frt_fr_get_lazy_doc(FrtFieldsReader *fr, int doc_num)
1642
1642
  lazy_doc_add_field(lazy_doc, lazy_df, i);
1643
1643
  }
1644
1644
  /* correct the starts to their correct absolute positions */
1645
- const off_t abs_start = frt_is_pos(fdt_in);
1645
+ const frt_off_t abs_start = frt_is_pos(fdt_in);
1646
1646
  for (i = 0; i < stored_cnt; i++) {
1647
1647
  FrtLazyDocField *lazy_df = lazy_doc->fields[i];
1648
1648
  const int df_size = lazy_df->size;
@@ -1719,7 +1719,7 @@ FrtHash *frt_fr_get_tv(FrtFieldsReader *fr, int doc_num)
1719
1719
  int i;
1720
1720
  FrtInStream *fdx_in = fr->fdx_in;
1721
1721
  FrtInStream *fdt_in = fr->fdt_in;
1722
- off_t data_ptr, field_index_ptr;
1722
+ frt_off_t data_ptr, field_index_ptr;
1723
1723
  int field_cnt;
1724
1724
  int *field_nums;
1725
1725
 
@@ -1757,7 +1757,7 @@ FrtTermVector *frt_fr_get_field_tv(FrtFieldsReader *fr, int doc_num, int field_n
1757
1757
 
1758
1758
  if (doc_num >= 0 && doc_num < fr->size) {
1759
1759
  int i, fnum = -1;
1760
- off_t field_index_ptr;
1760
+ frt_off_t field_index_ptr;
1761
1761
  int field_cnt;
1762
1762
  int offset = 0;
1763
1763
  FrtInStream *fdx_in = fr->fdx_in;
@@ -2038,7 +2038,7 @@ void frt_fw_add_postings(FrtFieldsWriter *fw,
2038
2038
  int i, delta_start, delta_length;
2039
2039
  const char *last_term = FRT_EMPTY_STRING;
2040
2040
  FrtOutStream *fdt_out = fw->fdt_out;
2041
- off_t fdt_start_pos = frt_os_pos(fdt_out);
2041
+ frt_off_t fdt_start_pos = frt_os_pos(fdt_out);
2042
2042
  FrtPostingList *plist;
2043
2043
  FrtPosting *posting;
2044
2044
  FrtOccurence *occ;
@@ -2152,7 +2152,7 @@ static void sti_ensure_index_is_read(FrtSegmentTermIndex *sti, FrtTermEnum *inde
2152
2152
  if (NULL == sti->index_terms) {
2153
2153
  int i;
2154
2154
  int index_cnt = sti->index_cnt;
2155
- off_t index_ptr = 0;
2155
+ frt_off_t index_ptr = 0;
2156
2156
  ste_reset(index_te);
2157
2157
  frt_is_seek(STE(index_te)->is, sti->index_ptr);
2158
2158
  STE(index_te)->size = sti->index_cnt;
@@ -2789,7 +2789,7 @@ static void tw_add(FrtTermWriter *tw, const char *term, int term_len, FrtTermInf
2789
2789
  }
2790
2790
 
2791
2791
  void frt_tiw_add(FrtTermInfosWriter *tiw, const char *term, int term_len, FrtTermInfo *ti) {
2792
- off_t tis_pos;
2792
+ frt_off_t tis_pos;
2793
2793
 
2794
2794
  if (0 == (tiw->tis_writer->counter % tiw->index_interval)) {
2795
2795
  /* add an index term */
@@ -2962,8 +2962,8 @@ static bool stde_skip_to(FrtTermDocEnum *tde, int target_doc_num) {
2962
2962
  if (stde->doc_freq >= stde->skip_interval
2963
2963
  && target_doc_num > stde->doc_num) { /* optimized case */
2964
2964
  int last_skip_doc;
2965
- off_t last_frq_ptr;
2966
- off_t last_prx_ptr;
2965
+ frt_off_t last_frq_ptr;
2966
+ frt_off_t last_prx_ptr;
2967
2967
  int num_skipped;
2968
2968
 
2969
2969
  if (NULL == stde->skip_in) {
@@ -3034,7 +3034,7 @@ static void stde_skip_prox(FrtSegmentTermDocEnum *stde) {
3034
3034
  (void)stde;
3035
3035
  }
3036
3036
 
3037
- static void stde_seek_prox(FrtSegmentTermDocEnum *stde, off_t prx_ptr) {
3037
+ static void stde_seek_prox(FrtSegmentTermDocEnum *stde, frt_off_t prx_ptr) {
3038
3038
  (void)stde;
3039
3039
  (void)prx_ptr;
3040
3040
  }
@@ -3130,7 +3130,7 @@ static void stpe_skip_prox(FrtSegmentTermDocEnum *stde)
3130
3130
  frt_is_skip_vints(stde->prx_in, stde->freq);
3131
3131
  }
3132
3132
 
3133
- static void stpe_seek_prox(FrtSegmentTermDocEnum *stde, off_t prx_ptr)
3133
+ static void stpe_seek_prox(FrtSegmentTermDocEnum *stde, frt_off_t prx_ptr)
3134
3134
  {
3135
3135
  frt_is_seek(stde->prx_in, prx_ptr);
3136
3136
  stde->prx_cnt = 0;
@@ -5108,8 +5108,8 @@ typedef struct SkipBuffer
5108
5108
  FrtOutStream *frq_out;
5109
5109
  FrtOutStream *prx_out;
5110
5110
  int last_doc;
5111
- off_t last_frq_ptr;
5112
- off_t last_prx_ptr;
5111
+ frt_off_t last_frq_ptr;
5112
+ frt_off_t last_prx_ptr;
5113
5113
  } SkipBuffer;
5114
5114
 
5115
5115
  static void skip_buf_reset(SkipBuffer *skip_buf)
@@ -5131,8 +5131,8 @@ static SkipBuffer *skip_buf_new(FrtOutStream *frq_out, FrtOutStream *prx_out)
5131
5131
 
5132
5132
  static void skip_buf_add(SkipBuffer *skip_buf, int doc)
5133
5133
  {
5134
- off_t frq_ptr = frt_os_pos(skip_buf->frq_out);
5135
- off_t prx_ptr = frt_os_pos(skip_buf->prx_out);
5134
+ frt_off_t frq_ptr = frt_os_pos(skip_buf->frq_out);
5135
+ frt_off_t prx_ptr = frt_os_pos(skip_buf->prx_out);
5136
5136
 
5137
5137
  frt_os_write_vint(skip_buf->buf, doc - skip_buf->last_doc);
5138
5138
  frt_os_write_vint(skip_buf->buf, frq_ptr - skip_buf->last_frq_ptr);
@@ -5143,9 +5143,9 @@ static void skip_buf_add(SkipBuffer *skip_buf, int doc)
5143
5143
  skip_buf->last_prx_ptr = prx_ptr;
5144
5144
  }
5145
5145
 
5146
- static off_t skip_buf_write(SkipBuffer *skip_buf)
5146
+ static frt_off_t skip_buf_write(SkipBuffer *skip_buf)
5147
5147
  {
5148
- off_t skip_ptr = frt_os_pos(skip_buf->frq_out);
5148
+ frt_off_t skip_ptr = frt_os_pos(skip_buf->frq_out);
5149
5149
  frt_ramo_write_to(skip_buf->buf, skip_buf->frq_out);
5150
5150
  return skip_ptr;
5151
5151
  }
@@ -5378,7 +5378,7 @@ static void dw_add_posting(FrtMemoryPool *mp,
5378
5378
  }
5379
5379
  }
5380
5380
 
5381
- static void dw_add_offsets(FrtDocWriter *dw, int pos, off_t start, off_t end)
5381
+ static void dw_add_offsets(FrtDocWriter *dw, int pos, frt_off_t start, frt_off_t end)
5382
5382
  {
5383
5383
  if (pos >= dw->offsets_capa) {
5384
5384
  int old_capa = dw->offsets_capa;
@@ -5402,7 +5402,7 @@ FrtHash *frt_dw_invert_field(FrtDocWriter *dw, FrtFieldInverter *fld_inv, FrtDoc
5402
5402
  int doc_num = dw->doc_num;
5403
5403
  int i;
5404
5404
  const int df_size = df->size;
5405
- off_t start_offset = 0;
5405
+ frt_off_t start_offset = 0;
5406
5406
 
5407
5407
  if (fld_inv->is_tokenized) {
5408
5408
  FrtToken *tk;
@@ -5701,7 +5701,7 @@ static void sm_destroy(SegmentMerger *sm)
5701
5701
  static void sm_merge_fields(SegmentMerger *sm)
5702
5702
  {
5703
5703
  int i, j;
5704
- off_t start, end = 0;
5704
+ frt_off_t start, end = 0;
5705
5705
  char file_name[FRT_SEGMENT_NAME_MAX_LENGTH];
5706
5706
  FrtOutStream *fdt_out, *fdx_out;
5707
5707
  FrtStore *store = sm->store;
@@ -5818,12 +5818,12 @@ static char *sm_cache_term(SegmentMerger *sm, char *term, int term_len)
5818
5818
  static void sm_merge_term_info(SegmentMerger *sm, SegmentMergeInfo **matches,
5819
5819
  int match_size)
5820
5820
  {
5821
- off_t frq_ptr = frt_os_pos(sm->frq_out);
5822
- off_t prx_ptr = frt_os_pos(sm->prx_out);
5821
+ frt_off_t frq_ptr = frt_os_pos(sm->frq_out);
5822
+ frt_off_t prx_ptr = frt_os_pos(sm->prx_out);
5823
5823
 
5824
5824
  int df = sm_append_postings(sm, matches, match_size); /* append posting data */
5825
5825
 
5826
- off_t skip_ptr = skip_buf_write(sm->skip_buf);
5826
+ frt_off_t skip_ptr = skip_buf_write(sm->skip_buf);
5827
5827
 
5828
5828
  if (df > 0) {
5829
5829
  /* add an entry to the dictionary with ptrs to prox and freq files */
@@ -6370,7 +6370,7 @@ static void iw_cp_fields(FrtIndexWriter *iw, FrtSegmentReader *sr, const char *s
6370
6370
  int j, data_len = 0;
6371
6371
  const int field_cnt = frt_is_read_vint(fdt_in);
6372
6372
  int tv_cnt;
6373
- off_t doc_start_ptr = frt_os_pos(fdt_out);
6373
+ frt_off_t doc_start_ptr = frt_os_pos(fdt_out);
6374
6374
 
6375
6375
  frt_os_write_u64(fdx_out, doc_start_ptr);
6376
6376
  frt_os_write_vint(fdt_out, field_cnt);
@@ -224,9 +224,9 @@ extern void frt_sis_put(FrtSegmentInfos *sis, FILE *stream);
224
224
 
225
225
  typedef struct FrtTermInfo {
226
226
  int doc_freq;
227
- off_t frq_ptr;
228
- off_t prx_ptr;
229
- off_t skip_offset;
227
+ frt_off_t frq_ptr;
228
+ frt_off_t prx_ptr;
229
+ frt_off_t skip_offset;
230
230
  } FrtTermInfo;
231
231
 
232
232
  #define frt_ti_set(ti, mdf, mfp, mpp, mso) do {\
@@ -265,14 +265,14 @@ FrtTermInfo *frt_te_get_ti(struct FrtTermEnum *te);
265
265
  /* FrtSegmentTermIndex */
266
266
 
267
267
  typedef struct FrtSegmentTermIndex {
268
- off_t index_ptr;
269
- off_t ptr;
268
+ frt_off_t index_ptr;
269
+ frt_off_t ptr;
270
270
  int index_cnt;
271
271
  int size;
272
272
  char **index_terms;
273
273
  int *index_term_lens;
274
274
  FrtTermInfo *index_term_infos;
275
- off_t *index_ptrs;
275
+ frt_off_t *index_ptrs;
276
276
  } FrtSegmentTermIndex;
277
277
 
278
278
  /* FrtSegmentFieldIndex */
@@ -281,7 +281,7 @@ typedef struct FrtSegmentFieldIndex {
281
281
  frt_mutex_t mutex;
282
282
  int skip_interval;
283
283
  int index_interval;
284
- off_t index_ptr;
284
+ frt_off_t index_ptr;
285
285
  FrtTermEnum *index_te;
286
286
  FrtHash *field_dict;
287
287
  } FrtSegmentFieldIndex;
@@ -349,7 +349,7 @@ typedef struct FrtTermInfosWriter {
349
349
  int field_count;
350
350
  int index_interval;
351
351
  int skip_interval;
352
- off_t last_index_ptr;
352
+ frt_off_t last_index_ptr;
353
353
  FrtOutStream *tfx_out;
354
354
  FrtTermWriter *tix_writer;
355
355
  FrtTermWriter *tis_writer;
@@ -385,7 +385,7 @@ struct FrtTermDocEnum {
385
385
  typedef struct FrtSegmentTermDocEnum FrtSegmentTermDocEnum;
386
386
  struct FrtSegmentTermDocEnum {
387
387
  FrtTermDocEnum tde;
388
- void (*seek_prox)(FrtSegmentTermDocEnum *stde, off_t prx_ptr);
388
+ void (*seek_prox)(FrtSegmentTermDocEnum *stde, frt_off_t prx_ptr);
389
389
  void (*skip_prox)(FrtSegmentTermDocEnum *stde);
390
390
  FrtTermInfosReader *tir;
391
391
  FrtInStream *frq_in;
@@ -402,9 +402,9 @@ struct FrtSegmentTermDocEnum {
402
402
  int skip_doc;
403
403
  int prx_cnt;
404
404
  int position;
405
- off_t frq_ptr;
406
- off_t prx_ptr;
407
- off_t skip_ptr;
405
+ frt_off_t frq_ptr;
406
+ frt_off_t prx_ptr;
407
+ frt_off_t skip_ptr;
408
408
  bool have_skipped : 1;
409
409
  };
410
410
 
@@ -429,8 +429,8 @@ extern FrtTermDocEnum *frt_mtdpe_new(FrtIndexReader *ir, int field_num, char **t
429
429
  ****************************************************************************/
430
430
 
431
431
  typedef struct FrtOffset {
432
- off_t start;
433
- off_t end;
432
+ frt_off_t start;
433
+ frt_off_t end;
434
434
  } FrtOffset;
435
435
 
436
436
  /****************************************************************************
@@ -529,7 +529,7 @@ extern FrtTVTerm *frt_tv_get_tv_term(FrtTermVector *tv, const char *term);
529
529
 
530
530
  /* * * FrtLazyDocField * * */
531
531
  typedef struct FrtLazyDocFieldData {
532
- off_t start;
532
+ frt_off_t start;
533
533
  int length;
534
534
  rb_encoding *encoding;
535
535
  FrtCompressionType compression; /* as stored */
@@ -595,7 +595,7 @@ typedef struct FrtFieldsWriter {
595
595
  FrtOutStream *fdx_out;
596
596
  FrtOutStream *buffer;
597
597
  FrtTVField *tv_fields;
598
- off_t start_ptr;
598
+ frt_off_t start_ptr;
599
599
  } FrtFieldsWriter;
600
600
 
601
601
  extern FrtFieldsWriter *frt_fw_open(FrtStore *store, const char *segment, FrtFieldInfos *fis);
@@ -846,8 +846,8 @@ extern void frt_iw_add_readers(FrtIndexWriter *iw, FrtIndexReader **readers, con
846
846
  #define FRT_CW_INIT_CAPA 16
847
847
  typedef struct FrtCWFileEntry {
848
848
  char *name;
849
- off_t dir_offset;
850
- off_t data_offset;
849
+ frt_off_t dir_offset;
850
+ frt_off_t data_offset;
851
851
  } FrtCWFileEntry;
852
852
 
853
853
  typedef struct FrtCompoundWriter {
@@ -136,7 +136,7 @@ static void ram_clear_all(FrtStore *store) {
136
136
  }
137
137
  }
138
138
 
139
- static off_t ram_length(FrtStore *store, const char *filename) {
139
+ static frt_off_t ram_length(FrtStore *store, const char *filename) {
140
140
  FrtRAMFile *rf = (FrtRAMFile *)frt_h_get(store->dir.ht, filename);
141
141
  if (rf != NULL) {
142
142
  return rf->len;
@@ -151,7 +151,7 @@ static void ramo_flush_i(FrtOutStream *os, const frt_uchar *src, int len) {
151
151
  FrtRAMFile *rf = os->file.rf;
152
152
  int buffer_number, buffer_offset, bytes_in_buffer, bytes_to_copy;
153
153
  int src_offset;
154
- off_t pointer = os->pointer;
154
+ frt_off_t pointer = os->pointer;
155
155
 
156
156
  buffer_number = (int)(pointer / FRT_BUFFER_SIZE);
157
157
  buffer_offset = pointer % FRT_BUFFER_SIZE;
@@ -179,7 +179,7 @@ static void ramo_flush_i(FrtOutStream *os, const frt_uchar *src, int len) {
179
179
  }
180
180
  }
181
181
 
182
- static void ramo_seek_i(FrtOutStream *os, off_t pos) {
182
+ static void ramo_seek_i(FrtOutStream *os, frt_off_t pos) {
183
183
  os->pointer = pos;
184
184
  }
185
185
 
@@ -248,7 +248,7 @@ static void rami_read_i(FrtInStream *is, frt_uchar *b, int len) {
248
248
  int offset = 0;
249
249
  int buffer_number, buffer_offset, bytes_in_buffer, bytes_to_copy;
250
250
  int remainder = len;
251
- off_t start = is->d.pointer;
251
+ frt_off_t start = is->d.pointer;
252
252
  frt_uchar *buffer;
253
253
 
254
254
  while (remainder > 0) {
@@ -271,11 +271,11 @@ static void rami_read_i(FrtInStream *is, frt_uchar *b, int len) {
271
271
  is->d.pointer += len;
272
272
  }
273
273
 
274
- static off_t rami_length_i(FrtInStream *is) {
274
+ static frt_off_t rami_length_i(FrtInStream *is) {
275
275
  return is->f->file.rf->len;
276
276
  }
277
277
 
278
- static void rami_seek_i(FrtInStream *is, off_t pos) {
278
+ static void rami_seek_i(FrtInStream *is, frt_off_t pos) {
279
279
  is->d.pointer = pos;
280
280
  }
281
281
 
@@ -125,7 +125,7 @@ off_t frt_os_pos(FrtOutStream *os)
125
125
  return os->buf.start + os->buf.pos;
126
126
  }
127
127
 
128
- void frt_os_seek(FrtOutStream *os, off_t new_pos)
128
+ void frt_os_seek(FrtOutStream *os, frt_off_t new_pos)
129
129
  {
130
130
  frt_os_flush(os);
131
131
  os->buf.start = new_pos;
@@ -202,9 +202,9 @@ FrtInStream *frt_is_new(void) {
202
202
  */
203
203
  static void is_refill(FrtInStream *is)
204
204
  {
205
- off_t start = is->buf.start + is->buf.pos;
206
- off_t last = start + FRT_BUFFER_SIZE;
207
- off_t flen = is->m->length_i(is);
205
+ frt_off_t start = is->buf.start + is->buf.pos;
206
+ frt_off_t last = start + FRT_BUFFER_SIZE;
207
+ frt_off_t flen = is->m->length_i(is);
208
208
 
209
209
  if (last > flen) { /* don't read past EOF */
210
210
  last = flen;
@@ -254,7 +254,7 @@ off_t frt_is_pos(FrtInStream *is)
254
254
  frt_uchar *frt_is_read_bytes(FrtInStream *is, frt_uchar *buf, int len)
255
255
  {
256
256
  int i;
257
- off_t start;
257
+ frt_off_t start;
258
258
 
259
259
  if ((is->buf.pos + len) < is->buf.len) {
260
260
  for (i = 0; i < len; i++) {
@@ -273,7 +273,7 @@ frt_uchar *frt_is_read_bytes(FrtInStream *is, frt_uchar *buf, int len)
273
273
  return buf;
274
274
  }
275
275
 
276
- void frt_is_seek(FrtInStream *is, off_t pos) {
276
+ void frt_is_seek(FrtInStream *is, frt_off_t pos) {
277
277
  if (pos >= is->buf.start && pos < (is->buf.start + is->buf.len)) {
278
278
  is->buf.pos = pos - is->buf.start; /* seek within buffer */
279
279
  } else {
@@ -384,7 +384,7 @@ unsigned int frt_is_read_vint(FrtInStream *is)
384
384
  /* optimized to use unchecked read_byte if there is definitely space */
385
385
  off_t frt_is_read_voff_t(FrtInStream *is)
386
386
  {
387
- register off_t res, b;
387
+ register frt_off_t res, b;
388
388
  register int shift = 7;
389
389
 
390
390
  if (is->buf.pos > (is->buf.len - VINT_MAX_LEN)) {
@@ -553,7 +553,7 @@ void frt_os_write_vint(FrtOutStream *os, register unsigned int num)
553
553
  }
554
554
 
555
555
  /* optimized to use an unchecked write if there is space */
556
- void frt_os_write_voff_t(FrtOutStream *os, register off_t num)
556
+ void frt_os_write_voff_t(FrtOutStream *os, register frt_off_t num)
557
557
  {
558
558
  if (os->buf.pos > VINT_END) {
559
559
  while (num > 127) {
@@ -13,9 +13,9 @@
13
13
  typedef struct FrtBuffer
14
14
  {
15
15
  frt_uchar buf[FRT_BUFFER_SIZE];
16
- off_t start;
17
- off_t pos;
18
- off_t len;
16
+ frt_off_t start;
17
+ frt_off_t pos;
18
+ frt_off_t len;
19
19
  } FrtBuffer;
20
20
 
21
21
  typedef struct FrtOutStream FrtOutStream;
@@ -38,7 +38,7 @@ struct FrtOutStreamMethods {
38
38
  * @param pos the position to seek in the stream
39
39
  * @raise FRT_IO_ERROR if there is an error seeking in the output stream
40
40
  */
41
- void (*seek_i)(struct FrtOutStream *os, off_t pos);
41
+ void (*seek_i)(struct FrtOutStream *os, frt_off_t pos);
42
42
 
43
43
  /**
44
44
  * Close any resources used by the output stream +os+
@@ -54,7 +54,7 @@ typedef struct FrtRAMFile
54
54
  char *name;
55
55
  frt_uchar **buffers;
56
56
  int bufcnt;
57
- off_t len;
57
+ frt_off_t len;
58
58
  _Atomic unsigned int ref_cnt;
59
59
  } FrtRAMFile;
60
60
 
@@ -66,7 +66,7 @@ struct FrtOutStream
66
66
  int fd;
67
67
  FrtRAMFile *rf;
68
68
  } file;
69
- off_t pointer; /* only used by RAMOut */
69
+ frt_off_t pointer; /* only used by RAMOut */
70
70
  const struct FrtOutStreamMethods *m;
71
71
  };
72
72
 
@@ -95,7 +95,7 @@ struct FrtInStreamMethods
95
95
  * @param pos the position to seek
96
96
  * @raise FRT_IO_ERROR if the seek fails
97
97
  */
98
- void (*seek_i)(struct FrtInStream *is, off_t pos);
98
+ void (*seek_i)(struct FrtInStream *is, frt_off_t pos);
99
99
 
100
100
  /**
101
101
  * Returns the length of the input stream +is+
@@ -103,7 +103,7 @@ struct FrtInStreamMethods
103
103
  * @param is self
104
104
  * @raise FRT_IO_ERROR if there is an error getting the file length
105
105
  */
106
- off_t (*length_i)(struct FrtInStream *is);
106
+ frt_off_t (*length_i)(struct FrtInStream *is);
107
107
 
108
108
  /**
109
109
  * Close the resources allocated to the inputstream +is+
@@ -126,7 +126,7 @@ struct FrtInStream {
126
126
  FrtBuffer buf;
127
127
  struct FrtInStreamFile *f;
128
128
  union {
129
- off_t pointer; /* only used by RAMIn */
129
+ frt_off_t pointer; /* only used by RAMIn */
130
130
  char *path; /* only used by FSIn */
131
131
  FrtCompoundInStream *cis;
132
132
  } d;
@@ -137,8 +137,8 @@ struct FrtInStream {
137
137
  struct FrtCompoundInStream
138
138
  {
139
139
  FrtInStream *sub;
140
- off_t offset;
141
- off_t length;
140
+ frt_off_t offset;
141
+ frt_off_t length;
142
142
  };
143
143
 
144
144
  #define frt_is_length(mis) mis->m->length_i(mis)
@@ -274,7 +274,7 @@ struct FrtStore {
274
274
  * @return the length of the file in bytes
275
275
  * @raise FRT_IO_ERROR if there is an error checking the file length
276
276
  */
277
- off_t (*length)(FrtStore *store, const char *filename);
277
+ frt_off_t (*length)(FrtStore *store, const char *filename);
278
278
 
279
279
  /**
280
280
  * Allocate the resources needed for the output stream in the +store+ with
@@ -465,7 +465,7 @@ extern void frt_os_close(FrtOutStream *os);
465
465
  * @param os the FrtOutStream to get the position from
466
466
  * @return the current position in FrtOutStream +os+
467
467
  */
468
- extern off_t frt_os_pos(FrtOutStream *os);
468
+ extern frt_off_t frt_os_pos(FrtOutStream *os);
469
469
 
470
470
  /**
471
471
  * Set the current position in FrtOutStream +os+.
@@ -474,7 +474,7 @@ extern off_t frt_os_pos(FrtOutStream *os);
474
474
  * @param pos the new position in the FrtOutStream
475
475
  * @raise FRT_IO_ERROR if there is a file-system IO error seeking the file
476
476
  */
477
- extern void frt_os_seek(FrtOutStream *os, off_t new_pos);
477
+ extern void frt_os_seek(FrtOutStream *os, frt_off_t new_pos);
478
478
 
479
479
  /**
480
480
  * Write a single byte +b+ to the FrtOutStream +os+
@@ -541,14 +541,14 @@ extern void frt_os_write_u64(FrtOutStream *os, frt_u64 num);
541
541
  extern void frt_os_write_vint(FrtOutStream *os, register unsigned int num);
542
542
 
543
543
  /**
544
- * Write an unsigned off_t to FrtOutStream in compressed VINT format.
544
+ * Write an unsigned frt_off_t to FrtOutStream in compressed VINT format.
545
545
  * TODO: describe VINT format
546
546
  *
547
547
  * @param os FrtOutStream to write to
548
- * @param num the off_t to write
548
+ * @param num the frt_off_t to write
549
549
  * @raise FRT_IO_ERROR if there is an error writing to the file-system
550
550
  */
551
- extern void frt_os_write_voff_t(FrtOutStream *os, register off_t num);
551
+ extern void frt_os_write_voff_t(FrtOutStream *os, register frt_off_t num);
552
552
 
553
553
  /**
554
554
  * Write an unsigned 64bit int to FrtOutStream in compressed VINT format.
@@ -591,7 +591,7 @@ extern void frt_os_write_string(FrtOutStream *os, const char *str);
591
591
  * @param is the FrtInStream to get the current position from
592
592
  * @return the current position within the FrtInStream +is+
593
593
  */
594
- extern off_t frt_is_pos(FrtInStream *is);
594
+ extern frt_off_t frt_is_pos(FrtInStream *is);
595
595
 
596
596
  /**
597
597
  * Set the current position in FrtInStream +is+ to +pos+.
@@ -601,7 +601,7 @@ extern off_t frt_is_pos(FrtInStream *is);
601
601
  * @raise FRT_IO_ERROR if there is a error seeking from the file-system
602
602
  * @raise FRT_EOF_ERROR if there is an attempt to seek past the end of the file
603
603
  */
604
- extern void frt_is_seek(FrtInStream *is, off_t pos);
604
+ extern void frt_is_seek(FrtInStream *is, frt_off_t pos);
605
605
 
606
606
  /**
607
607
  * Close the FrtInStream freeing all allocated resources.
@@ -705,15 +705,15 @@ extern unsigned int frt_is_read_vint(FrtInStream *is);
705
705
  extern void frt_is_skip_vints(FrtInStream *is, register int cnt);
706
706
 
707
707
  /**
708
- * Read a compressed (VINT) unsigned off_t from the FrtInStream.
708
+ * Read a compressed (VINT) unsigned frt_off_t from the FrtInStream.
709
709
  * TODO: describe VINT format
710
710
  *
711
711
  * @param is the FrtInStream to read from
712
- * @return a off_t
712
+ * @return a frt_off_t
713
713
  * @raise FRT_IO_ERROR if there is a error reading from the file-system
714
714
  * @raise FRT_EOF_ERROR if there is an attempt to read past the end of the file
715
715
  */
716
- extern off_t frt_is_read_voff_t(FrtInStream *is);
716
+ extern frt_off_t frt_is_read_voff_t(FrtInStream *is);
717
717
 
718
718
  /**
719
719
  * Read a compressed (VINT) unsigned 64bit int from the FrtInStream.
@@ -998,7 +998,7 @@ static void test_simulated_crashed_writer(TestCase *tc, void *data)
998
998
  {
999
999
  int i;
1000
1000
  long gen;
1001
- off_t length;
1001
+ frt_off_t length;
1002
1002
  FrtStore *store = (FrtStore *)data;
1003
1003
  FrtIndexWriter *iw;
1004
1004
  FrtIndexReader *ir;
@@ -1059,7 +1059,7 @@ static void test_simulated_corrupt_index1(TestCase *tc, void *data)
1059
1059
  {
1060
1060
  int i;
1061
1061
  long gen;
1062
- off_t length;
1062
+ frt_off_t length;
1063
1063
  FrtStore *store = (FrtStore *)data;
1064
1064
  FrtIndexWriter *iw;
1065
1065
  FrtIndexReader *ir;
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Ferret
3
- VERSION = '0.13.9'
3
+ VERSION = '0.13.10'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-ferret
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.9
4
+ version: 0.13.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-04 00:00:00.000000000 Z
11
+ date: 2022-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: oj
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rake
15
29
  requirement: !ruby/object:Gem::Requirement