isomorfeus-ferret 0.15.0 → 0.16.0

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: dc82aa85a233a1eb67ae971fbd6e5704b1f6b14660ed5673f9292a3021f34837
4
- data.tar.gz: dea91e29a2a3c14381067d05177c455d8953b74f0187e9b7610997c4a1bc68ae
3
+ metadata.gz: '0910e1e8d9cb68f71275b885c83ac427fd06163d19c9d3353a5eac3899bf91a8'
4
+ data.tar.gz: b057b640008ef4384a7d118bb97ad6644c51b2fef0986bb02bc3ac296a423f8e
5
5
  SHA512:
6
- metadata.gz: '064940571edfbb380795a71031274f6489010cdc28da4c26a64c769eee924593df069d72939a4f6e5e56b8b94398108e6e039c00526a250dbb5f51068a10880e'
7
- data.tar.gz: 76edc3b5f07bd779498fe92d8630ec5f651e05eae82982fcedc853b9086fd7af84e827407ee0b2316456dc07bb7f508b63ded855278ff4ca38af18398ee7cc1e
6
+ metadata.gz: 8437a6d16ff08ebc05f78169a0ca1bfa6627b3994ecae09b25a1373a7cfd41c8836ee21cf0485f0b1008d34488da8f4e781a50e92f9847527f5f6c2b8729d3df
7
+ data.tar.gz: 7742111e748ba8adb135d50a8d676eb57c63e2bd723b5099a000f01f6e17dd0e3d1bfdd9e47bf7a5af67ad7ead75b6241b660af094f6b7e673115dd07e0abe7b
@@ -291,7 +291,7 @@ static VALUE frb_fis_create_index(VALUE self, VALUE rdir) {
291
291
  } else {
292
292
  StringValue(rdir);
293
293
  frb_create_dir(rdir);
294
- store = frt_open_fs_store(rs2s(rdir));
294
+ store = frt_open_mdbx_store(rs2s(rdir));
295
295
  frt_index_create(store, fis);
296
296
  frt_store_close(store);
297
297
  }
@@ -983,7 +983,7 @@ static VALUE frb_iw_close(VALUE self) {
983
983
  * dir = RAMDirectory.new()
984
984
  * iw = IndexWriter.new(:dir => dir)
985
985
  *
986
- * dir = FSDirectory.new("/path/to/index")
986
+ * dir = MDBXDirectory.new("/path/to/index")
987
987
  * iw = IndexWriter.new(:dir => dir)
988
988
  *
989
989
  * iw = IndexWriter.new(:path => "/path/to/index")
@@ -1039,7 +1039,7 @@ static VALUE frb_iw_init(int argc, VALUE *argv, VALUE self) {
1039
1039
  } else if ((rval = rb_hash_aref(roptions, sym_path)) != Qnil) {
1040
1040
  StringValue(rval);
1041
1041
  frb_create_dir(rval);
1042
- store = frt_open_fs_store(rs2s(rval));
1042
+ store = frt_open_mdbx_store(rs2s(rval));
1043
1043
  }
1044
1044
  /* use_compound_file defaults to true */
1045
1045
  config.use_compound_file =
@@ -1112,10 +1112,25 @@ static VALUE frb_iw_init(int argc, VALUE *argv, VALUE self) {
1112
1112
  * taken into account until the FrtIndexWriter has been committed.
1113
1113
  */
1114
1114
  static VALUE
1115
- frb_iw_get_doc_count(VALUE self)
1116
- {
1115
+ frb_iw_get_doc_count(VALUE self) {
1116
+ int ex_code = 0;
1117
+ const char *msg = NULL;
1118
+ int cnt = 0;
1117
1119
  FrtIndexWriter *iw = (FrtIndexWriter *)DATA_PTR(self);
1118
- return INT2FIX(frt_iw_doc_count(iw));
1120
+
1121
+ FRT_TRY
1122
+ cnt = frt_iw_doc_count(iw);
1123
+ FRT_XCATCHALL
1124
+ ex_code = xcontext.excode;
1125
+ msg = xcontext.msg;
1126
+ FRT_HANDLED();
1127
+ FRT_XENDTRY
1128
+
1129
+ if (ex_code && msg) {
1130
+ frb_raise(ex_code, msg);
1131
+ }
1132
+
1133
+ return INT2FIX(cnt);
1119
1134
  }
1120
1135
 
1121
1136
  static int
@@ -1224,12 +1239,26 @@ frb_get_doc(VALUE rdoc)
1224
1239
  * hash object.
1225
1240
  */
1226
1241
  static VALUE
1227
- frb_iw_add_doc(VALUE self, VALUE rdoc)
1228
- {
1242
+ frb_iw_add_doc(VALUE self, VALUE rdoc) {
1243
+ int ex_code = 0;
1244
+ const char *msg = NULL;
1245
+
1229
1246
  FrtIndexWriter *iw = (FrtIndexWriter *)DATA_PTR(self);
1230
- FrtDocument *doc = frb_get_doc(rdoc);
1231
- frt_iw_add_doc(iw, doc);
1232
- frt_doc_destroy(doc);
1247
+
1248
+ FRT_TRY
1249
+ FrtDocument *doc = frb_get_doc(rdoc);
1250
+ frt_iw_add_doc(iw, doc);
1251
+ frt_doc_destroy(doc);
1252
+ FRT_XCATCHALL
1253
+ ex_code = xcontext.excode;
1254
+ msg = xcontext.msg;
1255
+ FRT_HANDLED();
1256
+ FRT_XENDTRY
1257
+
1258
+ if (ex_code && msg) {
1259
+ frb_raise(ex_code, msg);
1260
+ }
1261
+
1233
1262
  return self;
1234
1263
  }
1235
1264
 
@@ -1246,10 +1275,24 @@ frb_iw_add_doc(VALUE self, VALUE rdoc)
1246
1275
  * process).
1247
1276
  */
1248
1277
  static VALUE
1249
- frb_iw_optimize(VALUE self)
1250
- {
1278
+ frb_iw_optimize(VALUE self) {
1279
+ int ex_code = 0;
1280
+ const char *msg = NULL;
1281
+
1251
1282
  FrtIndexWriter *iw = (FrtIndexWriter *)DATA_PTR(self);
1252
- frt_iw_optimize(iw);
1283
+
1284
+ FRT_TRY
1285
+ frt_iw_optimize(iw);
1286
+ FRT_XCATCHALL
1287
+ ex_code = xcontext.excode;
1288
+ msg = xcontext.msg;
1289
+ FRT_HANDLED();
1290
+ FRT_XENDTRY
1291
+
1292
+ if (ex_code && msg) {
1293
+ frb_raise(ex_code, msg);
1294
+ }
1295
+
1253
1296
  return self;
1254
1297
  }
1255
1298
 
@@ -1262,10 +1305,24 @@ frb_iw_optimize(VALUE self)
1262
1305
  * with an IndexWriter.
1263
1306
  */
1264
1307
  static VALUE
1265
- frb_iw_commit(VALUE self)
1266
- {
1308
+ frb_iw_commit(VALUE self) {
1309
+ int ex_code = 0;
1310
+ const char *msg = NULL;
1311
+
1267
1312
  FrtIndexWriter *iw = (FrtIndexWriter *)DATA_PTR(self);
1268
- frt_iw_commit(iw);
1313
+
1314
+ FRT_TRY
1315
+ frt_iw_commit(iw);
1316
+ FRT_XCATCHALL
1317
+ ex_code = xcontext.excode;
1318
+ msg = xcontext.msg;
1319
+ FRT_HANDLED();
1320
+ FRT_XENDTRY
1321
+
1322
+ if (ex_code && msg) {
1323
+ frb_raise(ex_code, msg);
1324
+ }
1325
+
1269
1326
  return self;
1270
1327
  }
1271
1328
 
@@ -1322,21 +1379,36 @@ const rb_data_type_t frb_index_reader_t = {
1322
1379
  * index.
1323
1380
  */
1324
1381
  static VALUE frb_iw_add_readers(VALUE self, VALUE rreaders) {
1382
+ int ex_code = 0;
1383
+ const char *msg = NULL;
1325
1384
  FrtIndexWriter *iw = (FrtIndexWriter *)DATA_PTR(self);
1326
- int i;
1385
+ int i, l;
1327
1386
  FrtIndexReader **irs;
1328
1387
  Check_Type(rreaders, T_ARRAY);
1329
1388
 
1330
1389
  irs = FRT_ALLOC_N(FrtIndexReader *, RARRAY_LEN(rreaders));
1331
- i = RARRAY_LEN(rreaders);
1390
+ i = l = RARRAY_LEN(rreaders);
1332
1391
  while (i-- > 0) {
1333
1392
  FrtIndexReader *ir;
1334
1393
  TypedData_Get_Struct(RARRAY_PTR(rreaders)[i], FrtIndexReader, &frb_index_reader_t, ir);
1335
1394
  FRT_REF(ir);
1336
1395
  irs[i] = ir;
1337
1396
  }
1338
- frt_iw_add_readers(iw, irs, RARRAY_LEN(rreaders));
1397
+
1398
+ FRT_TRY
1399
+ frt_iw_add_readers(iw, irs, l);
1400
+ FRT_XCATCHALL
1401
+ ex_code = xcontext.excode;
1402
+ msg = xcontext.msg;
1403
+ FRT_HANDLED();
1404
+ FRT_XENDTRY
1405
+
1339
1406
  free(irs);
1407
+
1408
+ if (ex_code && msg) {
1409
+ frb_raise(ex_code, msg);
1410
+ }
1411
+
1340
1412
  return self;
1341
1413
  }
1342
1414
 
@@ -1352,21 +1424,35 @@ static VALUE frb_iw_add_readers(VALUE self, VALUE rreaders) {
1352
1424
  * want to delete all documents with the term "viagra" when deleting spam.
1353
1425
  */
1354
1426
  static VALUE
1355
- frb_iw_delete(VALUE self, VALUE rfield, VALUE rterm)
1356
- {
1427
+ frb_iw_delete(VALUE self, VALUE rfield, VALUE rterm) {
1428
+ int ex_code = 0;
1429
+ const char *msg = NULL;
1430
+
1357
1431
  FrtIndexWriter *iw = (FrtIndexWriter *)DATA_PTR(self);
1358
- if (TYPE(rterm) == T_ARRAY) {
1359
- const int term_cnt = RARRAY_LEN(rterm);
1360
- int i;
1361
- char **terms = FRT_ALLOC_N(char *, term_cnt);
1362
- for (i = 0; i < term_cnt; i++) {
1363
- terms[i] = StringValuePtr(RARRAY_PTR(rterm)[i]);
1432
+
1433
+ FRT_TRY
1434
+ if (TYPE(rterm) == T_ARRAY) {
1435
+ const int term_cnt = RARRAY_LEN(rterm);
1436
+ int i;
1437
+ char **terms = FRT_ALLOC_N(char *, term_cnt);
1438
+ for (i = 0; i < term_cnt; i++) {
1439
+ terms[i] = StringValuePtr(RARRAY_PTR(rterm)[i]);
1440
+ }
1441
+ frt_iw_delete_terms(iw, frb_field(rfield), terms, term_cnt);
1442
+ free(terms);
1443
+ } else {
1444
+ frt_iw_delete_term(iw, frb_field(rfield), StringValuePtr(rterm));
1364
1445
  }
1365
- frt_iw_delete_terms(iw, frb_field(rfield), terms, term_cnt);
1366
- free(terms);
1367
- } else {
1368
- frt_iw_delete_term(iw, frb_field(rfield), StringValuePtr(rterm));
1446
+ FRT_XCATCHALL
1447
+ ex_code = xcontext.excode;
1448
+ msg = xcontext.msg;
1449
+ FRT_HANDLED();
1450
+ FRT_XENDTRY
1451
+
1452
+ if (ex_code && msg) {
1453
+ frb_raise(ex_code, msg);
1369
1454
  }
1455
+
1370
1456
  return self;
1371
1457
  }
1372
1458
 
@@ -1688,7 +1774,7 @@ frb_iw_set_use_compound_file(VALUE self, VALUE rval)
1688
1774
  * dir = RAMDirectory.new()
1689
1775
  * iw = IndexReader.new(dir)
1690
1776
  *
1691
- * dir = FSDirectory.new("/path/to/index")
1777
+ * dir = MDBXDirectory.new("/path/to/index")
1692
1778
  * iw = IndexReader.new(dir)
1693
1779
  *
1694
1780
  * iw = IndexReader.new("/path/to/index")
@@ -1744,7 +1830,7 @@ static VALUE frb_ir_init(VALUE self, VALUE rdir) {
1744
1830
  break;
1745
1831
  case T_STRING:
1746
1832
  frb_create_dir(rdir);
1747
- store = frt_open_fs_store(rs2s(rdir));
1833
+ store = frt_open_mdbx_store(rs2s(rdir));
1748
1834
  break;
1749
1835
  default:
1750
1836
  FRT_RAISE(FRT_ARG_ERROR, "%s isn't a valid directory "
@@ -1765,7 +1851,7 @@ static VALUE frb_ir_init(VALUE self, VALUE rdir) {
1765
1851
  break;
1766
1852
  case T_STRING:
1767
1853
  frb_create_dir(rdir);
1768
- store = frt_open_fs_store(rs2s(rdir));
1854
+ store = frt_open_mdbx_store(rs2s(rdir));
1769
1855
  break;
1770
1856
  default:
1771
1857
  FRT_RAISE(FRT_ARG_ERROR, "%s isn't a valid directory argument. "
@@ -1810,10 +1896,23 @@ static VALUE frb_ir_init(VALUE self, VALUE rdir) {
1810
1896
  * encoded float value.
1811
1897
  */
1812
1898
  static VALUE
1813
- frb_ir_set_norm(VALUE self, VALUE rdoc_id, VALUE rfield, VALUE rval)
1814
- {
1899
+ frb_ir_set_norm(VALUE self, VALUE rdoc_id, VALUE rfield, VALUE rval) {
1900
+ int ex_code = 0;
1901
+ const char *msg = NULL;
1815
1902
  FrtIndexReader *ir = (FrtIndexReader *)DATA_PTR(self);
1816
- frt_ir_set_norm(ir, FIX2INT(rdoc_id), frb_field(rfield), (frt_uchar)NUM2CHR(rval));
1903
+
1904
+ FRT_TRY
1905
+ frt_ir_set_norm(ir, FIX2INT(rdoc_id), frb_field(rfield), (frt_uchar)NUM2CHR(rval));
1906
+ FRT_XCATCHALL
1907
+ ex_code = xcontext.excode;
1908
+ msg = xcontext.msg;
1909
+ FRT_HANDLED();
1910
+ FRT_XENDTRY
1911
+
1912
+ if (ex_code && msg) {
1913
+ frb_raise(ex_code, msg);
1914
+ }
1915
+
1817
1916
  return self;
1818
1917
  }
1819
1918
 
@@ -1871,10 +1970,22 @@ frb_ir_get_norms_into(VALUE self, VALUE rfield, VALUE rnorms, VALUE roffset)
1871
1970
  * will use open a Commit lock.
1872
1971
  */
1873
1972
  static VALUE
1874
- frb_ir_commit(VALUE self)
1875
- {
1973
+ frb_ir_commit(VALUE self) {
1974
+ int ex_code = 0;
1975
+ const char *msg = NULL;
1876
1976
  FrtIndexReader *ir = (FrtIndexReader *)DATA_PTR(self);
1877
- frt_ir_commit(ir);
1977
+ FRT_TRY
1978
+ frt_ir_commit(ir);
1979
+ FRT_XCATCHALL
1980
+ ex_code = xcontext.excode;
1981
+ msg = xcontext.msg;
1982
+ FRT_HANDLED();
1983
+ FRT_XENDTRY
1984
+
1985
+ if (ex_code && msg) {
1986
+ frb_raise(ex_code, msg);
1987
+ }
1988
+
1878
1989
  return self;
1879
1990
  }
1880
1991
 
@@ -1922,10 +2033,23 @@ frb_ir_has_deletions(VALUE self)
1922
2033
  * returned by search methods.
1923
2034
  */
1924
2035
  static VALUE
1925
- frb_ir_delete(VALUE self, VALUE rdoc_id)
1926
- {
2036
+ frb_ir_delete(VALUE self, VALUE rdoc_id) {
2037
+ int ex_code = 0;
2038
+ const char *msg = NULL;
1927
2039
  FrtIndexReader *ir = (FrtIndexReader *)DATA_PTR(self);
1928
- frt_ir_delete_doc(ir, FIX2INT(rdoc_id));
2040
+
2041
+ FRT_TRY
2042
+ frt_ir_delete_doc(ir, FIX2INT(rdoc_id));
2043
+ FRT_XCATCHALL
2044
+ ex_code = xcontext.excode;
2045
+ msg = xcontext.msg;
2046
+ FRT_HANDLED();
2047
+ FRT_XENDTRY
2048
+
2049
+ if (ex_code && msg) {
2050
+ frb_raise(ex_code, msg);
2051
+ }
2052
+
1929
2053
  return self;
1930
2054
  }
1931
2055
 
@@ -2014,8 +2138,7 @@ frb_get_doc_range(FrtIndexReader *ir, int pos, int len, int max)
2014
2138
  * which are returned by the Searchers search methods.
2015
2139
  */
2016
2140
  static VALUE
2017
- frb_ir_get_doc(int argc, VALUE *argv, VALUE self)
2018
- {
2141
+ frb_ir_get_doc(int argc, VALUE *argv, VALUE self) {
2019
2142
  FrtIndexReader *ir = (FrtIndexReader *)DATA_PTR(self);
2020
2143
  VALUE arg1, arg2;
2021
2144
  long pos, len;
@@ -2044,8 +2167,7 @@ frb_ir_get_doc(int argc, VALUE *argv, VALUE self)
2044
2167
  default:
2045
2168
  return frb_get_doc_range(ir, pos, len, max);
2046
2169
  }
2047
- }
2048
- else {
2170
+ } else {
2049
2171
  pos = FIX2LONG(arg1);
2050
2172
  len = FIX2LONG(arg2);
2051
2173
  return frb_get_doc_range(ir, pos, len, max);
@@ -3604,7 +3604,7 @@ static VALUE frb_sea_init(VALUE self, VALUE obj) {
3604
3604
  FrtSearcher *sea;
3605
3605
  if (TYPE(obj) == T_STRING) {
3606
3606
  frb_create_dir(obj);
3607
- store = frt_open_fs_store(rs2s(obj));
3607
+ store = frt_open_mdbx_store(rs2s(obj));
3608
3608
  ir = frt_ir_open(NULL, store);
3609
3609
  ir->rir = TypedData_Wrap_Struct(cIndexReader, &frb_index_reader_t, ir);
3610
3610
  } else {