Skip to content
Snippets Groups Projects
Unverified Commit 7edf8dca authored by bright-starry-sky's avatar bright-starry-sky Committed by GitHub
Browse files

Turn on the testcase for lookup (#312)


Co-authored-by: default avatardutor <440396+dutor@users.noreply.github.com>
parent 64f4f37c
No related branches found
No related tags found
No related merge requests found
......@@ -102,7 +102,8 @@ function run_test() {
$PROJ_DIR/tests/query/stateless/test_range.py \
$PROJ_DIR/tests/query/stateless/test_go.py \
$PROJ_DIR/tests/query/stateless/test_simple_query.py \
$PROJ_DIR/tests/query/stateless/test_keyword.py
$PROJ_DIR/tests/query/stateless/test_keyword.py \
$PROJ_DIR/tests/query/stateless/test_lookup.py
}
case "$1" in
......
......@@ -42,6 +42,7 @@ Status IndexScanValidator::prepareFrom() {
Status IndexScanValidator::prepareYield() {
auto *sentence = static_cast<const LookupSentence *>(sentence_);
returnCols_ = std::make_unique<std::vector<std::string>>();
if (sentence->yieldClause() == nullptr) {
return Status::OK();
}
......@@ -55,7 +56,6 @@ Status IndexScanValidator::prepareYield() {
? Status::EdgeNotFound("Edge schema not found : %s", from->c_str())
: Status::TagNotFound("Tag schema not found : %s", from->c_str());
}
returnCols_ = std::make_unique<std::vector<std::string>>();
for (auto col : columns) {
std::string schemaName, colName;
if (col->expr()->kind() == Expression::Kind::kLabelAttribute) {
......
......@@ -18,12 +18,14 @@ class TestIndex(NebulaTestSuite):
self.check_resp_succeeded(resp)
def test_edge_index(self):
time.sleep(self.delay)
resp = self.execute('USE nbaLookup')
self.check_resp_succeeded(resp)
resp = self.execute("CREATE EDGE like(likeness int)")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE EDGE serve(start_year int, end_year int)")
self.check_resp_succeeded(resp)
time.sleep(self.delay)
resp = self.execute("CREATE EDGE INDEX serve_index_1 on serve(start_year)")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE EDGE INDEX serve_index_2 on serve(end_year)")
......@@ -33,97 +35,125 @@ class TestIndex(NebulaTestSuite):
resp = self.execute("CREATE EDGE INDEX like_index_1 on like(likeness)")
self.check_resp_succeeded(resp)
time.sleep(self.delay)
resp = self.execute('INSERT EDGE like(likeness) VALUES 100 -> 101:(95)')
resp = self.execute('INSERT EDGE like(likeness) VALUES "100" -> "101":(95)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE like(likeness) VALUES 101 -> 102:(95)')
resp = self.execute('INSERT EDGE like(likeness) VALUES "101" -> "102":(95)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE like(likeness) VALUES 102 -> 104:(85)')
resp = self.execute('INSERT EDGE like(likeness) VALUES "102" -> "104":(85)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE like(likeness) VALUES 102 -> 103:(85)')
resp = self.execute('INSERT EDGE like(likeness) VALUES "102" -> "103":(85)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE like(likeness) VALUES 105 -> 106:(90)')
resp = self.execute('INSERT EDGE like(likeness) VALUES "105" -> "106":(90)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE like(likeness) VALUES 106 -> 100:(75)')
resp = self.execute('INSERT EDGE like(likeness) VALUES "106" -> "100":(75)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES 100 -> 200:(1997, 2016)')
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES "100" -> "200":(1997, 2016)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES 101 -> 201:(1999, 2018)')
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES "101" -> "201":(1999, 2018)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES 102 -> 202:(1997, 2016)')
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES "102" -> "202":(1997, 2016)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES 103 -> 203:(1999, 2018)')
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES "103" -> "203":(1999, 2018)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES 105 -> 204:(1997, 2016)')
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES "105" -> "204":(1997, 2016)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES 121 -> 201:(1999, 2018)')
resp = self.execute('INSERT EDGE serve(start_year, end_year) VALUES "121" -> "201":(1999, 2018)')
self.check_resp_succeeded(resp)
resp = self.execute_query('LOOKUP ON serve where serve.start_year > 0')
self.check_resp_succeeded(resp)
assert len(resp.data.rows) == 6
resp = self.execute_query('LOOKUP ON serve where serve.start_year > 1997 and serve.end_year < 2020')
self.check_resp_succeeded(resp)
assert len(resp.data.rows) == 3
resp = self.execute_query('LOOKUP ON serve where serve.start_year > 2000 and serve.end_year < 2020')
self.check_resp_succeeded(resp)
self.check_empty_result(resp)
resp = self.execute_query('LOOKUP ON like where like.likeness > 89')
self.check_resp_succeeded(resp)
assert len(resp.data.rows) == 3
resp = self.execute_query('LOOKUP ON like where like.likeness < 39')
self.check_resp_succeeded(resp)
self.check_empty_result(resp)
def test_tag_index(self):
time.sleep(self.delay)
resp = self.execute('USE nbaLookup')
self.check_resp_succeeded(resp)
resp = self.execute("CREATE TAG player (name string, age int)")
resp = self.execute("CREATE TAG player (name FIXED_STRING(30), age INT)")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE TAG team (name string)")
resp = self.execute("CREATE TAG team (name FIXED_STRING(30))")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE TAG INDEX player_index_1 on player(name);")
time.sleep(self.delay)
resp = self.execute("CREATE TAG INDEX player_index_1 on player(name)")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE TAG INDEX player_index_2 on player(age);")
resp = self.execute("CREATE TAG INDEX player_index_2 on player(age)")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE TAG INDEX player_index_3 on player(name,age);")
resp = self.execute("CREATE TAG INDEX player_index_3 on player(name,age)")
self.check_resp_succeeded(resp)
resp = self.execute("CREATE TAG INDEX team_index_1 on team(name)")
self.check_resp_succeeded(resp)
time.sleep(self.delay)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 100:("Tim Duncan", 42)')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "100":("Tim Duncan", 42)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 101:("Tony Parker", 36);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "101":("Tony Parker", 36)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 102:("LaMarcus Aldridge", 33);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "102":("LaMarcus Aldridge", 33)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 103:("xxx", 35);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "103":("xxx", 35)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 104:("yyy", 28);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "104":("yyy", 28)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 105:("zzz", 21);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "105":("zzz", 21)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 106:("kkk", 21);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "106":("kkk", 21)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 121:("Useless", 60);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "121":("Useless", 60)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX player(name, age) VALUES 121:("Useless", 20);')
resp = self.execute('INSERT VERTEX player(name, age) VALUES "121":("Useless", 20)')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX team(name) VALUES 200:("Warriors");')
resp = self.execute('INSERT VERTEX team(name) VALUES "200":("Warriors")')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX team(name) VALUES 201:("Nuggets")')
resp = self.execute('INSERT VERTEX team(name) VALUES "201":("Nuggets")')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX team(name) VALUES 202:("oopp")')
resp = self.execute('INSERT VERTEX team(name) VALUES "202":("oopp")')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX team(name) VALUES 203:("iiiooo")')
resp = self.execute('INSERT VERTEX team(name) VALUES "203":("iiiooo")')
self.check_resp_succeeded(resp)
resp = self.execute('INSERT VERTEX team(name) VALUES 204:("opl")')
resp = self.execute('INSERT VERTEX team(name) VALUES "204":("opl")')
self.check_resp_succeeded(resp)
resp = self.execute_query('LOOKUP ON player where player.age == 35')
self.check_resp_succeeded(resp)
assert len(resp.data.rows) == 1
resp = self.execute_query('LOOKUP ON player where player.age > 0')
self.check_resp_succeeded(resp)
assert len(resp.data.rows) == 8
resp = self.execute_query('LOOKUP ON player where player.age < 100')
self.check_resp_succeeded(resp)
resp = self.execute_query('LOOKUP ON player where player.name == Useless')
assert len(resp.data.rows) == 8
resp = self.execute_query('LOOKUP ON player where player.name == "Useless"')
self.check_resp_succeeded(resp)
resp = self.execute_query('LOOKUP ON player where player.name == Useless and player.age < 30')
assert len(resp.data.rows) == 1
resp = self.execute_query('LOOKUP ON player where player.name == "Useless" and player.age < 30')
self.check_resp_succeeded(resp)
resp = self.execute_query('LOOKUP ON team where team.name == Warriors')
assert len(resp.data.rows) == 1
resp = self.execute_query('LOOKUP ON team where team.name == "Warriors"')
self.check_resp_succeeded(resp)
resp = self.execute_query('LOOKUP ON team where team.name == oopp')
assert len(resp.data.rows) == 1
resp = self.execute_query('LOOKUP ON team where team.name == "oopp"')
self.check_resp_succeeded(resp)
assert len(resp.data.rows) == 1
@classmethod
def cleanup(self):
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment