Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
2
210360228
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Summer2021
210360228
Commits
7edf8dca
Unverified
Commit
7edf8dca
authored
4 years ago
by
bright-starry-sky
Committed by
GitHub
4 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Turn on the testcase for lookup (#312)
Co-authored-by:
dutor
<
440396+dutor@users.noreply.github.com
>
parent
64f4f37c
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
ci/test.sh
+2
-1
2 additions, 1 deletion
ci/test.sh
src/validator/IndexScanValidator.cpp
+1
-1
1 addition, 1 deletion
src/validator/IndexScanValidator.cpp
tests/query/stateless/test_lookup.py
+65
-35
65 additions, 35 deletions
tests/query/stateless/test_lookup.py
with
68 additions
and
37 deletions
ci/test.sh
+
2
−
1
View file @
7edf8dca
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
src/validator/IndexScanValidator.cpp
+
1
−
1
View file @
7edf8dca
...
...
@@ -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
)
{
...
...
This diff is collapsed.
Click to expand it.
tests/query/stateless/test_lookup.py
+
65
−
35
View file @
7edf8dca
...
...
@@ -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
):
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment