mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
Add test cases of Ignore growing (#22901)
Signed-off-by: nico <cheng.yuan@zilliz.com>
This commit is contained in:
parent
0e9a4478e3
commit
306d29de26
@ -1502,13 +1502,19 @@ class TestUpsertValid(TestcaseBase):
|
||||
data2, float_values2 = cf.gen_default_data_for_upsert(upsert_nb)
|
||||
|
||||
# upsert at the same time
|
||||
def do_upsert():
|
||||
def do_upsert1():
|
||||
collection_w.upsert(data=data1)
|
||||
|
||||
t = threading.Thread(target=do_upsert, args=())
|
||||
t.start()
|
||||
collection_w.upsert(data=data2)
|
||||
t.join()
|
||||
def do_upsert2():
|
||||
collection_w.upsert(data=data2)
|
||||
|
||||
t1 = threading.Thread(target=do_upsert1, args=())
|
||||
t2 = threading.Thread(target=do_upsert2, args=())
|
||||
|
||||
t1.start()
|
||||
t2.start()
|
||||
t1.join()
|
||||
t2.join()
|
||||
|
||||
# check the result
|
||||
exp = f"int64 >= 0 && int64 <= {upsert_nb}"
|
||||
|
||||
@ -923,6 +923,52 @@ class TestQueryParams(TestcaseBase):
|
||||
for ids in [res[i][default_int_field_name] for i in range(ct.default_nb)]:
|
||||
assert ids < 10000
|
||||
|
||||
@pytest.mark.tags(CaseLabel.L2)
|
||||
def test_query_ignore_growing_after_upsert(self):
|
||||
"""
|
||||
target: test query ignoring growing segment after upsert
|
||||
method: 1. create a collection, insert data, create index and load
|
||||
2. upsert the inserted data
|
||||
3. query with param ignore_growing=True
|
||||
expected: query successfully
|
||||
"""
|
||||
# 1. create a collection
|
||||
collection_w = self.init_collection_general(prefix, True)[0]
|
||||
|
||||
# 2. insert data again
|
||||
data = cf.gen_default_data_for_upsert()[0]
|
||||
collection_w.upsert(data)
|
||||
|
||||
# 3. query with param ignore_growing=True
|
||||
res1 = collection_w.query('int64 >= 0', ignore_growing=True)[0]
|
||||
res2 = collection_w.query('int64 >= 0')[0]
|
||||
assert len(res1) == 0
|
||||
assert len(res2) == ct.default_nb
|
||||
|
||||
@pytest.mark.tags(CaseLabel.L2)
|
||||
@pytest.mark.parametrize("ignore_growing", ct.get_invalid_strs[:8])
|
||||
def test_query_invalid_ignore_growing_param(self, ignore_growing):
|
||||
"""
|
||||
target: test query ignoring growing segment param invalid
|
||||
method: 1. create a collection, insert data and load
|
||||
2. insert data again
|
||||
3. query with ignore_growing type invalid
|
||||
expected: raise exception
|
||||
"""
|
||||
if ignore_growing == 1:
|
||||
pytest.skip("number is valid")
|
||||
# 1. create a collection
|
||||
collection_w = self.init_collection_general(prefix, True)[0]
|
||||
|
||||
# 2. insert data again
|
||||
data = cf.gen_default_dataframe_data(start=10000)
|
||||
collection_w.insert(data)
|
||||
|
||||
# 3. query with param ignore_growing invalid
|
||||
error = {ct.err_code: 1, ct.err_msg: "parse search growing failed"}
|
||||
collection_w.query('int64 >= 0', ignore_growing=ignore_growing,
|
||||
check_task=CheckTasks.err_res, check_items=error)
|
||||
|
||||
@pytest.fixture(scope="function", params=[0, 10, 100])
|
||||
def offset(self, request):
|
||||
yield request.param
|
||||
|
||||
@ -869,6 +869,34 @@ class TestCollectionSearchInvalid(TestcaseBase):
|
||||
check_items={"err_code": 1,
|
||||
"err_msg": f"Field {output_fields[-1]} not exist"})
|
||||
|
||||
@pytest.mark.tags(CaseLabel.L2)
|
||||
@pytest.mark.parametrize("ignore_growing", ct.get_invalid_strs[:8])
|
||||
def test_search_invalid_ignore_growing_param(self, ignore_growing):
|
||||
"""
|
||||
target: test search ignoring growing segment
|
||||
method: 1. create a collection, insert data, create index and load
|
||||
2. insert data again
|
||||
3. search with param ignore_growing invalid
|
||||
expected: raise exception
|
||||
"""
|
||||
if ignore_growing == 1:
|
||||
pytest.skip("number is valid")
|
||||
# 1. create a collection
|
||||
collection_w = self.init_collection_general(prefix, True)[0]
|
||||
|
||||
# 2. insert data again
|
||||
data = cf.gen_default_dataframe_data(start=10000)
|
||||
collection_w.insert(data)
|
||||
|
||||
# 3. search with param ignore_growing=True
|
||||
search_params = {"metric_type": "L2", "params": {"nprobe": 10}, "ignore_growing": ignore_growing}
|
||||
vector = [[random.random() for _ in range(default_dim)] for _ in range(nq)]
|
||||
collection_w.search(vector[:default_nq], default_search_field, search_params, default_limit,
|
||||
default_search_exp,
|
||||
check_task=CheckTasks.err_res,
|
||||
check_items={"err_code": 1,
|
||||
"err_msg": "parse search growing failed"})
|
||||
|
||||
@pytest.mark.tags(CaseLabel.L2)
|
||||
def test_search_param_invalid_travel_timestamp(self, get_invalid_travel_timestamp):
|
||||
"""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user