ferret 0.10.0 → 0.10.1

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.
data/ext/index.c CHANGED
@@ -575,7 +575,7 @@ void sis_del_at(SegmentInfos *sis, int at)
575
575
  }
576
576
  }
577
577
 
578
- void sis_del_from_to(SegmentInfos *sis, int from, const int to)
578
+ void sis_del_from_to(SegmentInfos *sis, int from, int to)
579
579
  {
580
580
  int i, num_to_del = to - from;
581
581
  const int sis_size = sis->size -= num_to_del;
@@ -1138,9 +1138,9 @@ void fw_write_tv_index(FieldsWriter *fw)
1138
1138
  void fw_add_postings(FieldsWriter *fw,
1139
1139
  int field_num,
1140
1140
  PostingList **plists,
1141
- const int posting_count,
1141
+ int posting_count,
1142
1142
  Offset *offsets,
1143
- const int offset_count)
1143
+ int offset_count)
1144
1144
  {
1145
1145
  int i, delta_start, delta_length;
1146
1146
  const char *last_term = EMPTY_STRING;
@@ -1184,8 +1184,8 @@ void fw_add_postings(FieldsWriter *fw,
1184
1184
 
1185
1185
  if (fi_store_offsets(fi)) {
1186
1186
  /* use delta encoding for offsets */
1187
+ int last_end = 0;
1187
1188
  os_write_vint(fdt_out, offset_count); /* write shared prefix length */
1188
- int last_end = 0;
1189
1189
  for (i = 0; i < offset_count; i++) {
1190
1190
  int start = offsets[i].start;
1191
1191
  int end = offsets[i].end;
@@ -1852,6 +1852,10 @@ void tir_close(TermInfosReader *tir)
1852
1852
  {
1853
1853
  ary_destroy(tir->te_bucket, (free_ft)&ste_close);
1854
1854
  ste_close(tir->orig_te);
1855
+
1856
+ /* fix for some dodgy old versions of pthread */
1857
+ thread_setspecific(tir->thread_te, NULL);
1858
+
1855
1859
  thread_key_delete(tir->thread_te);
1856
1860
  free(tir);
1857
1861
  }
@@ -3335,6 +3339,7 @@ static void sr_close_i(IndexReader *ir)
3335
3339
  h_destroy(sr->norms);
3336
3340
 
3337
3341
  if (sr->fr_bucket) {
3342
+ thread_setspecific(sr->thread_fr, NULL);
3338
3343
  thread_key_delete(sr->thread_fr);
3339
3344
  ary_destroy(sr->fr_bucket, (free_ft)&fr_close);
3340
3345
  }
@@ -3489,10 +3494,11 @@ static void sr_open_norms(IndexReader *ir, Store *cfs_store)
3489
3494
  char file_name[SEGMENT_NAME_MAX_LENGTH];
3490
3495
  FieldInfos *fis = ir->fis;
3491
3496
  char *ext_ptr;
3497
+ const int field_cnt = fis->size;
3498
+
3492
3499
  sprintf(file_name, "%s.", SR(ir)->segment);
3493
3500
  ext_ptr = file_name + strlen(file_name);
3494
3501
 
3495
- const int field_cnt = fis->size;
3496
3502
  for (i = 0; i < field_cnt; i++) {
3497
3503
  Store *store = ir->store;
3498
3504
  if (fi_has_norms(fis->fields[i])) {
@@ -3931,9 +3937,10 @@ IndexReader *mr_open(IndexReader **sub_readers, const int r_cnt)
3931
3937
  if (need_field_map) {
3932
3938
  mr->field_num_map = ALLOC_N(int *, r_cnt);
3933
3939
  for (i = 0; i < r_cnt; i++) {
3934
- mr->field_num_map[i] = ALLOC_N(int, fis->size);
3935
3940
  FieldInfos *sub_fis = sub_readers[i]->fis;
3936
3941
  const int fis_size = fis->size;
3942
+
3943
+ mr->field_num_map[i] = ALLOC_N(int, fis_size);
3937
3944
  for (j = 0; j < fis_size; j++) {
3938
3945
  FieldInfo *fi = fis->fields[j];
3939
3946
  FieldInfo *fi_sub = fis_get_field(sub_fis, fi->name);
@@ -4438,13 +4445,14 @@ HashTable *dw_invert_field(DocWriter *dw,
4438
4445
  fld_inv->length = num_terms;
4439
4446
  }
4440
4447
  else {
4448
+ char buf[MAX_WORD_SIZE];
4449
+ buf[MAX_WORD_SIZE - 1] = '\0';
4441
4450
  for (i = 0; i < df_size; i++) {
4442
4451
  int len = df->lengths[i];
4443
- char buf[MAX_WORD_SIZE];
4444
4452
  char *data_ptr = df->data[i];
4445
4453
  if (len > MAX_WORD_SIZE) {
4446
4454
  len = MAX_WORD_SIZE - 1;
4447
- data_ptr = memcpy(buf, df->data[i], MAX_WORD_SIZE);
4455
+ data_ptr = memcpy(buf, df->data[i], len);
4448
4456
  }
4449
4457
  dw_add_posting(mp, curr_plists, fld_plists, doc_num, data_ptr,
4450
4458
  len, i);
@@ -5448,9 +5456,9 @@ static void iw_cp_fields(IndexWriter *iw, SegmentReader *sr,
5448
5456
  /* Write TermVectors */
5449
5457
  /* write TVs up to TV index */
5450
5458
  is2os_copy_bytes(fdt_in, fdt_out,
5451
- is_read_u64(fdx_in)
5452
- + is_read_u32(fdx_in)
5453
- - is_pos(fdt_in));
5459
+ (int)(is_read_u64(fdx_in)
5460
+ + (f_u64)is_read_u32(fdx_in)
5461
+ - (f_u64)is_pos(fdt_in)));
5454
5462
 
5455
5463
  /* Write TV index pos */
5456
5464
  os_write_u32(fdx_out, (f_u32)(os_pos(fdt_out) - doc_start_ptr));
data/ext/priorityqueue.c CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  #define START_CAPA 127
5
5
 
6
- PriorityQueue *pq_new(const int capa,
6
+ PriorityQueue *pq_new(int capa,
7
7
  bool (*less_than)(const void *p1, const void *p2),
8
8
  void (*free_elem)(void *elem))
9
9
  {
data/ext/q_parser.c CHANGED
@@ -133,7 +133,7 @@ typedef union YYSTYPE {
133
133
  char *str;
134
134
  } YYSTYPE;
135
135
  /* Line 196 of yacc.c. */
136
- #line 137 "y.tab.c"
136
+ #line 137 "src/q_parser.c"
137
137
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
138
138
  # define YYSTYPE_IS_DECLARED 1
139
139
  # define YYSTYPE_IS_TRIVIAL 1
@@ -188,12 +188,16 @@ static Query *get_range_q(const char *field, const char *from, const char *to,
188
188
  sq = func;\
189
189
  if (sq) bq_add_query_nr(q, sq, BC_SHOULD);\
190
190
  }\
191
+ if (((BooleanQuery *)q)->clause_cnt == 0) {\
192
+ q_deref(q);\
193
+ q = NULL;\
194
+ }\
191
195
  }\
192
196
  } while (0)
193
197
 
194
198
 
195
199
  /* Line 219 of yacc.c. */
196
- #line 197 "y.tab.c"
200
+ #line 201 "src/q_parser.c"
197
201
 
198
202
  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
199
203
  # define YYSIZE_T __SIZE_TYPE__
@@ -432,12 +436,12 @@ static const yysigned_char yyrhs[] =
432
436
  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
433
437
  static const unsigned char yyrline[] =
434
438
  {
435
- 0, 95, 95, 96, 98, 99, 100, 101, 103, 104,
436
- 105, 107, 108, 110, 111, 112, 113, 114, 115, 117,
437
- 118, 119, 121, 123, 123, 125, 125, 125, 128, 129,
438
- 131, 132, 133, 134, 136, 137, 138, 139, 140, 142,
439
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
440
- 153
439
+ 0, 99, 99, 100, 102, 103, 104, 105, 107, 108,
440
+ 109, 111, 112, 114, 115, 116, 117, 118, 119, 121,
441
+ 122, 123, 125, 127, 127, 129, 129, 129, 132, 133,
442
+ 135, 136, 137, 138, 140, 141, 142, 143, 144, 146,
443
+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
444
+ 157
441
445
  };
442
446
  #endif
443
447
 
@@ -1245,218 +1249,218 @@ yyreduce:
1245
1249
  switch (yyn)
1246
1250
  {
1247
1251
  case 2:
1248
- #line 95 "src/q_parser.y"
1249
- { qp->result = (yyval.query) = NULL; }
1252
+ #line 99 "src/q_parser.y"
1253
+ { qp->result = (yyval.query) = NULL; ;}
1250
1254
  break;
1251
1255
 
1252
1256
  case 3:
1253
- #line 96 "src/q_parser.y"
1254
- { qp->result = (yyval.query) = get_bool_q((yyvsp[0].bclss)); }
1257
+ #line 100 "src/q_parser.y"
1258
+ { qp->result = (yyval.query) = get_bool_q((yyvsp[0].bclss)); ;}
1255
1259
  break;
1256
1260
 
1257
1261
  case 4:
1258
- #line 98 "src/q_parser.y"
1259
- { (yyval.bclss) = first_cls((yyvsp[0].bcls)); }
1262
+ #line 102 "src/q_parser.y"
1263
+ { (yyval.bclss) = first_cls((yyvsp[0].bcls)); ;}
1260
1264
  break;
1261
1265
 
1262
1266
  case 5:
1263
- #line 99 "src/q_parser.y"
1264
- { (yyval.bclss) = add_and_cls((yyvsp[-2].bclss), (yyvsp[0].bcls)); }
1267
+ #line 103 "src/q_parser.y"
1268
+ { (yyval.bclss) = add_and_cls((yyvsp[-2].bclss), (yyvsp[0].bcls)); ;}
1265
1269
  break;
1266
1270
 
1267
1271
  case 6:
1268
- #line 100 "src/q_parser.y"
1269
- { (yyval.bclss) = add_or_cls((yyvsp[-2].bclss), (yyvsp[0].bcls)); }
1272
+ #line 104 "src/q_parser.y"
1273
+ { (yyval.bclss) = add_or_cls((yyvsp[-2].bclss), (yyvsp[0].bcls)); ;}
1270
1274
  break;
1271
1275
 
1272
1276
  case 7:
1273
- #line 101 "src/q_parser.y"
1274
- { (yyval.bclss) = add_default_cls(qp, (yyvsp[-1].bclss), (yyvsp[0].bcls)); }
1277
+ #line 105 "src/q_parser.y"
1278
+ { (yyval.bclss) = add_default_cls(qp, (yyvsp[-1].bclss), (yyvsp[0].bcls)); ;}
1275
1279
  break;
1276
1280
 
1277
1281
  case 8:
1278
- #line 103 "src/q_parser.y"
1279
- { (yyval.bcls) = get_bool_cls((yyvsp[0].query), BC_MUST); }
1282
+ #line 107 "src/q_parser.y"
1283
+ { (yyval.bcls) = get_bool_cls((yyvsp[0].query), BC_MUST); ;}
1280
1284
  break;
1281
1285
 
1282
1286
  case 9:
1283
- #line 104 "src/q_parser.y"
1284
- { (yyval.bcls) = get_bool_cls((yyvsp[0].query), BC_MUST_NOT); }
1287
+ #line 108 "src/q_parser.y"
1288
+ { (yyval.bcls) = get_bool_cls((yyvsp[0].query), BC_MUST_NOT); ;}
1285
1289
  break;
1286
1290
 
1287
1291
  case 10:
1288
- #line 105 "src/q_parser.y"
1289
- { (yyval.bcls) = get_bool_cls((yyvsp[0].query), BC_SHOULD); }
1292
+ #line 109 "src/q_parser.y"
1293
+ { (yyval.bcls) = get_bool_cls((yyvsp[0].query), BC_SHOULD); ;}
1290
1294
  break;
1291
1295
 
1292
1296
  case 12:
1293
- #line 108 "src/q_parser.y"
1294
- { if ((yyvsp[-2].query)) sscanf((yyvsp[0].str),"%f",&((yyvsp[-2].query)->boost)); (yyval.query)=(yyvsp[-2].query); }
1297
+ #line 112 "src/q_parser.y"
1298
+ { if ((yyvsp[-2].query)) sscanf((yyvsp[0].str),"%f",&((yyvsp[-2].query)->boost)); (yyval.query)=(yyvsp[-2].query); ;}
1295
1299
  break;
1296
1300
 
1297
1301
  case 14:
1298
- #line 111 "src/q_parser.y"
1299
- { (yyval.query) = get_bool_q((yyvsp[-1].bclss)); }
1302
+ #line 115 "src/q_parser.y"
1303
+ { (yyval.query) = get_bool_q((yyvsp[-1].bclss)); ;}
1300
1304
  break;
1301
1305
 
1302
1306
  case 19:
1303
- #line 117 "src/q_parser.y"
1304
- { FLDS((yyval.query), get_term_q(qp, field, (yyvsp[0].str))); }
1307
+ #line 121 "src/q_parser.y"
1308
+ { FLDS((yyval.query), get_term_q(qp, field, (yyvsp[0].str))); ;}
1305
1309
  break;
1306
1310
 
1307
1311
  case 20:
1308
- #line 118 "src/q_parser.y"
1309
- { FLDS((yyval.query), get_fuzzy_q(qp, field, (yyvsp[-2].str), (yyvsp[0].str))); }
1312
+ #line 122 "src/q_parser.y"
1313
+ { FLDS((yyval.query), get_fuzzy_q(qp, field, (yyvsp[-2].str), (yyvsp[0].str))); ;}
1310
1314
  break;
1311
1315
 
1312
1316
  case 21:
1313
- #line 119 "src/q_parser.y"
1314
- { FLDS((yyval.query), get_fuzzy_q(qp, field, (yyvsp[-1].str), NULL)); }
1317
+ #line 123 "src/q_parser.y"
1318
+ { FLDS((yyval.query), get_fuzzy_q(qp, field, (yyvsp[-1].str), NULL)); ;}
1315
1319
  break;
1316
1320
 
1317
1321
  case 22:
1318
- #line 121 "src/q_parser.y"
1319
- { FLDS((yyval.query), get_wild_q(qp, field, (yyvsp[0].str))); }
1322
+ #line 125 "src/q_parser.y"
1323
+ { FLDS((yyval.query), get_wild_q(qp, field, (yyvsp[0].str))); ;}
1320
1324
  break;
1321
1325
 
1322
1326
  case 23:
1323
- #line 123 "src/q_parser.y"
1324
- { qp->fields = qp->def_fields; }
1327
+ #line 127 "src/q_parser.y"
1328
+ { qp->fields = qp->def_fields; ;}
1325
1329
  break;
1326
1330
 
1327
1331
  case 24:
1328
- #line 124 "src/q_parser.y"
1329
- { (yyval.query) = (yyvsp[-1].query); }
1332
+ #line 128 "src/q_parser.y"
1333
+ { (yyval.query) = (yyvsp[-1].query); ;}
1330
1334
  break;
1331
1335
 
1332
1336
  case 25:
1333
- #line 125 "src/q_parser.y"
1334
- { qp->fields = qp->all_fields; }
1337
+ #line 129 "src/q_parser.y"
1338
+ { qp->fields = qp->all_fields; ;}
1335
1339
  break;
1336
1340
 
1337
1341
  case 26:
1338
- #line 125 "src/q_parser.y"
1339
- {qp->fields = qp->def_fields;}
1342
+ #line 129 "src/q_parser.y"
1343
+ {qp->fields = qp->def_fields;;}
1340
1344
  break;
1341
1345
 
1342
1346
  case 27:
1343
- #line 126 "src/q_parser.y"
1344
- { (yyval.query) = (yyvsp[-1].query); }
1347
+ #line 130 "src/q_parser.y"
1348
+ { (yyval.query) = (yyvsp[-1].query); ;}
1345
1349
  break;
1346
1350
 
1347
1351
  case 28:
1348
- #line 128 "src/q_parser.y"
1349
- { (yyval.hashset) = first_field(qp, (yyvsp[0].str)); }
1352
+ #line 132 "src/q_parser.y"
1353
+ { (yyval.hashset) = first_field(qp, (yyvsp[0].str)); ;}
1350
1354
  break;
1351
1355
 
1352
1356
  case 29:
1353
- #line 129 "src/q_parser.y"
1354
- { (yyval.hashset) = add_field(qp, (yyvsp[0].str));}
1357
+ #line 133 "src/q_parser.y"
1358
+ { (yyval.hashset) = add_field(qp, (yyvsp[0].str));;}
1355
1359
  break;
1356
1360
 
1357
1361
  case 30:
1358
- #line 131 "src/q_parser.y"
1359
- { (yyval.query) = get_phrase_q(qp, (yyvsp[-1].phrase), NULL); }
1362
+ #line 135 "src/q_parser.y"
1363
+ { (yyval.query) = get_phrase_q(qp, (yyvsp[-1].phrase), NULL); ;}
1360
1364
  break;
1361
1365
 
1362
1366
  case 31:
1363
- #line 132 "src/q_parser.y"
1364
- { (yyval.query) = get_phrase_q(qp, (yyvsp[-3].phrase), (yyvsp[0].str)); }
1367
+ #line 136 "src/q_parser.y"
1368
+ { (yyval.query) = get_phrase_q(qp, (yyvsp[-3].phrase), (yyvsp[0].str)); ;}
1365
1369
  break;
1366
1370
 
1367
1371
  case 32:
1368
- #line 133 "src/q_parser.y"
1369
- { (yyval.query) = NULL; }
1372
+ #line 137 "src/q_parser.y"
1373
+ { (yyval.query) = NULL; ;}
1370
1374
  break;
1371
1375
 
1372
1376
  case 33:
1373
- #line 134 "src/q_parser.y"
1374
- { (yyval.query) = NULL; }
1377
+ #line 138 "src/q_parser.y"
1378
+ { (yyval.query) = NULL; ;}
1375
1379
  break;
1376
1380
 
1377
1381
  case 34:
1378
- #line 136 "src/q_parser.y"
1379
- { (yyval.phrase) = ph_first_word((yyvsp[0].str)); }
1382
+ #line 140 "src/q_parser.y"
1383
+ { (yyval.phrase) = ph_first_word((yyvsp[0].str)); ;}
1380
1384
  break;
1381
1385
 
1382
1386
  case 35:
1383
- #line 137 "src/q_parser.y"
1384
- { (yyval.phrase) = ph_first_word(NULL); }
1387
+ #line 141 "src/q_parser.y"
1388
+ { (yyval.phrase) = ph_first_word(NULL); ;}
1385
1389
  break;
1386
1390
 
1387
1391
  case 36:
1388
- #line 138 "src/q_parser.y"
1389
- { (yyval.phrase) = ph_add_word((yyvsp[-1].phrase), (yyvsp[0].str)); }
1392
+ #line 142 "src/q_parser.y"
1393
+ { (yyval.phrase) = ph_add_word((yyvsp[-1].phrase), (yyvsp[0].str)); ;}
1390
1394
  break;
1391
1395
 
1392
1396
  case 37:
1393
- #line 139 "src/q_parser.y"
1394
- { (yyval.phrase) = ph_add_word((yyvsp[-2].phrase), NULL); }
1397
+ #line 143 "src/q_parser.y"
1398
+ { (yyval.phrase) = ph_add_word((yyvsp[-2].phrase), NULL); ;}
1395
1399
  break;
1396
1400
 
1397
1401
  case 38:
1398
- #line 140 "src/q_parser.y"
1399
- { (yyval.phrase) = ph_add_multi_word((yyvsp[-2].phrase), (yyvsp[0].str)); }
1402
+ #line 144 "src/q_parser.y"
1403
+ { (yyval.phrase) = ph_add_multi_word((yyvsp[-2].phrase), (yyvsp[0].str)); ;}
1400
1404
  break;
1401
1405
 
1402
1406
  case 39:
1403
- #line 142 "src/q_parser.y"
1404
- { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), true, true)); }
1407
+ #line 146 "src/q_parser.y"
1408
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), true, true)); ;}
1405
1409
  break;
1406
1410
 
1407
1411
  case 40:
1408
- #line 143 "src/q_parser.y"
1409
- { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), true, false)); }
1412
+ #line 147 "src/q_parser.y"
1413
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), true, false)); ;}
1410
1414
  break;
1411
1415
 
1412
1416
  case 41:
1413
- #line 144 "src/q_parser.y"
1414
- { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), false, true)); }
1417
+ #line 148 "src/q_parser.y"
1418
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), false, true)); ;}
1415
1419
  break;
1416
1420
 
1417
1421
  case 42:
1418
- #line 145 "src/q_parser.y"
1419
- { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), false, false)); }
1422
+ #line 149 "src/q_parser.y"
1423
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[-2].str), (yyvsp[-1].str), false, false)); ;}
1420
1424
  break;
1421
1425
 
1422
1426
  case 43:
1423
- #line 146 "src/q_parser.y"
1424
- { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[-1].str), false, false)); }
1427
+ #line 150 "src/q_parser.y"
1428
+ { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[-1].str), false, false)); ;}
1425
1429
  break;
1426
1430
 
1427
1431
  case 44:
1428
- #line 147 "src/q_parser.y"
1429
- { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[-1].str), false, true)); }
1432
+ #line 151 "src/q_parser.y"
1433
+ { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[-1].str), false, true)); ;}
1430
1434
  break;
1431
1435
 
1432
1436
  case 45:
1433
- #line 148 "src/q_parser.y"
1434
- { FLDS((yyval.query), get_range_q(field, (yyvsp[-1].str), NULL,true, false)); }
1437
+ #line 152 "src/q_parser.y"
1438
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[-1].str), NULL,true, false)); ;}
1435
1439
  break;
1436
1440
 
1437
1441
  case 46:
1438
- #line 149 "src/q_parser.y"
1439
- { FLDS((yyval.query), get_range_q(field, (yyvsp[-1].str), NULL,false, false)); }
1442
+ #line 153 "src/q_parser.y"
1443
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[-1].str), NULL,false, false)); ;}
1440
1444
  break;
1441
1445
 
1442
1446
  case 47:
1443
- #line 150 "src/q_parser.y"
1444
- { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[0].str), false, false)); }
1447
+ #line 154 "src/q_parser.y"
1448
+ { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[0].str), false, false)); ;}
1445
1449
  break;
1446
1450
 
1447
1451
  case 48:
1448
- #line 151 "src/q_parser.y"
1449
- { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[0].str), false, true)); }
1452
+ #line 155 "src/q_parser.y"
1453
+ { FLDS((yyval.query), get_range_q(field, NULL,(yyvsp[0].str), false, true)); ;}
1450
1454
  break;
1451
1455
 
1452
1456
  case 49:
1453
- #line 152 "src/q_parser.y"
1454
- { FLDS((yyval.query), get_range_q(field, (yyvsp[0].str), NULL,true, false)); }
1457
+ #line 156 "src/q_parser.y"
1458
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[0].str), NULL,true, false)); ;}
1455
1459
  break;
1456
1460
 
1457
1461
  case 50:
1458
- #line 153 "src/q_parser.y"
1459
- { FLDS((yyval.query), get_range_q(field, (yyvsp[0].str), NULL,false, false)); }
1462
+ #line 157 "src/q_parser.y"
1463
+ { FLDS((yyval.query), get_range_q(field, (yyvsp[0].str), NULL,false, false)); ;}
1460
1464
  break;
1461
1465
 
1462
1466
 
@@ -1464,7 +1468,7 @@ yyreduce:
1464
1468
  }
1465
1469
 
1466
1470
  /* Line 1126 of yacc.c. */
1467
- #line 1468 "y.tab.c"
1471
+ #line 1472 "src/q_parser.c"
1468
1472
 
1469
1473
  yyvsp -= yylen;
1470
1474
  yyssp -= yylen;
@@ -1732,11 +1736,11 @@ yyreturn:
1732
1736
  }
1733
1737
 
1734
1738
 
1735
- #line 155 "src/q_parser.y"
1739
+ #line 159 "src/q_parser.y"
1736
1740
 
1737
1741
 
1738
- const char *special_char = "&:()[]{}!+\"~^-|<>=*?";
1739
- const char *not_word = " \t&:()[]{}!+\"~^-|<>=";
1742
+ const char *special_char = "&:()[]{}!\"~^|<>=*?+-";
1743
+ const char *not_word = " \t:()[]{}!\"~^|<>=";
1740
1744
 
1741
1745
  static int get_word(YYSTYPE *lvalp, QParser *qp)
1742
1746
  {