Restream / reindexer

Embeddable, in-memory, document-oriented database with a high-level Query builder interface.
https://reindexer.io
Apache License 2.0
770 stars 64 forks source link

A mistake by the operator "IN" #11

Closed liderman closed 6 years ago

liderman commented 6 years ago

Hi! If you use IN for 2 or more times for the same field, then nothing is found.

Example 1 (this does not work):

SELECT *, COUNT(*) FROM filters WHERE filter_enum IN '298_3DIGMA' AND filter_enum IN '3105_3' ORDER BY price1 OFFSET 1 LIMIT 20

Example 2 (it works):

SELECT *, COUNT(*) FROM filters WHERE filter_enum IN '3105_3' ORDER BY price1 OFFSET 1 LIMIT 20

Example 3 (it works):

SELECT *, COUNT(*) FROM filters WHERE filter_enum IN '298_3DIGMA' ORDER BY price1 OFFSET 1 LIMIT 20

Example one record from the table "filters":

{
   "id":"477774",
   "space_id":"msk_cl",
   "filter_enum":[
      "2589_3",
      "5365_3chetyrekha2yadernyy",
      "298_3DIGMA",
      "3105_3",
      "3405_3glyantsevaya",
      "4539_364a5bit",
      "6536_3",
      "6862_3",
      "7154_3",
      "8392_3Windowsd110d1Home",
      "9623_3",
      "11236_3",
      "11242_3",
      "11244_3",
      "2579_3",
      "277_3Atomd1X5",
      "2788_31366kh768",
      "292_3chernyy",
      "294_3",
      "1047_3Inteld1HDd1Graphics",
      "10905_3CITI",
      "10659_311b76d1a3",
      "1046_3integrirovannyy",
      "295_3"
   ],
   "category_id":3,
   "last_avail_date":0,
   "marketing_status":"",
   "discount":false,
   "price":11990,
   "price1":12590,
   "price2":11990,
   "price3":11990,
   "price4":11990,
   "available":[
      1,
      2
   ]
}

I'm using the latest version of reindexer, like go binding.

olegator77 commented 6 years ago

Thank you for bug report. We have resolved issue in this qucik fix

liderman commented 6 years ago

Thank you very much! I checked the fix. Everything is working!