-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop scan edge opt when build path #4053
Stop scan edge opt when build path #4053
Conversation
Format the code by |
will do so, thanks! |
Now I see a regression case:
The root cause is when returning more than once of e, even like |
cd8a356
to
290eb7e
Compare
290eb7e
to
71b5ddc
Compare
I am stuck here as when the return part comes with more than one The strange thing is the final opt plan with I will talk to @Shylock-Hg closely tomorrow. I may not be catching up with this release cycle but I will try my best to do it. Sorry. |
After discussions with @Shylock-Hg and @yixinglu, something should be wrong somewhere else that had led to the pattern not being mapped, will look into it later. |
Will you continue to fix it? It needs to be merged into version 3.2. Thanks. |
I will look into it again before the end of July, in case collaboration is needed, will request it soon. |
b64ffd7
to
04df98a
Compare
Update: issue:
answer:
|
The UT Failure seems irrelevant =================================== FAILURES ===================================
_______________________ test_lookuptest_yieldclausetest ________________________
[gw4] linux -- Python 3.8.10 /usr/bin/python3
/github/home/.local/lib/python3.8/site-packages/pytest_bdd/scenario.py:177: in scenario_wrapper
_execute_scenario(feature, scenario, request, encoding)
/github/home/.local/lib/python3.8/site-packages/pytest_bdd/scenario.py:143: in _execute_scenario
_execute_step_function(request, scenario, step, step_func)
/github/home/.local/lib/python3.8/site-packages/pytest_bdd/scenario.py:113: in _execute_step_function
return_value = step_func(**kwargs)
tck/conftest.py:736: in execution_should_be_succ
check_resp(rs, stmt)
common/utils.py:334: in check_resp
assert resp.is_succeeded(), msg
E AssertionError: Fail to exec: INSERT VERTEX student(number, age), teacher(number, age) VALUES "220":(1, 20, 1, 30), "221":(2, 22, 2, 32), error: Storage Error: Tag not found.
___________________ test_indextest_rebuildtagindexstatusinfo ___________________ |
04df98a
to
a268940
Compare
tests/tck/features/optimizer/GetEdgesTransformLimitRule.feature
Outdated
Show resolved
Hide resolved
4f8aafe
to
674dff1
Compare
update: I managed to make it work in my env, just pushed to check UT(don't have time to run UT locally before going to bed), and will continue tomorrow. |
acba653
to
4c4cb37
Compare
Update: my own tck case failed, will(sorry) will check tomorrow morning. |
4c4cb37
to
bf5839b
Compare
src/graph/optimizer/rule/GetEdgesTransformAppendVerticesLimitRule.h
Outdated
Show resolved
Hide resolved
4927b79
to
8f50f4e
Compare
e096ca7
to
fd599ef
Compare
delete: av->traverse->scanV add: project-> limit -> av->traverse->sv add: project-> av ->traverse->sv exclude optRule for buildPath in project.colums() Comments added lint: clang-format [WIP] Fixing regression when return e, e.foo.bar The limit info is lost in this case Fix after vesoft-inc#4146 OptGroup was refactored in vesoft-inc#4146 Removed GetEdgesTransformRule
As this rule only aplied for match ()-[e]->() return e limit 1 when 1. there is no index on e and 2. limit cluase exists, thus we could assert that AppendVertices will be removed by EliminateAppendVerticesRule // Tranformation: // Before: // +---------+---------+ // | Project | // +---------+---------+ // | // +---------+---------+ // | Limit | // +---------+---------+ // | // +---------+---------+ // | Traverse | // +---------+---------+ // | // +---------+---------+ // | ScanVertices | // +---------+---------+ // // After: // +---------+---------+ // | Project | // +---------+---------+ // | // +---------+---------+ // | Limit | // +---------+---------+ // | // +---------+---------+ // | Project | // +---------+---------+ // | // +---------+---------+ // | ScanEdges | // +---------+---------+
and linting
fd599ef
to
bad018b
Compare
What type of PR is this?
What problem(s) does this PR solve?
Issue(s) number: #3996
Description:
How do you solve it?
Stop scanV -> scanE optRule when buildPath
match p=()-[e]->() return p limit 3
match ()-[e]->() return e,e limit 3
match ()-[e]->() return e limit 3
Special notes for your reviewer, ex. impact of this fix, design document, etc:
Checklist:
Tests:
Affects:
Release notes:
Please confirm whether to be reflected in release notes and how to describe:
Fixed the bug on the indexless case of
match p=(:team)--() return p limit 1
end up with badtype, instead, it should be rejected due to being unable to pushdown.