-
-
Notifications
You must be signed in to change notification settings - Fork 209
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
Replace generateIndexScan with costedIndexScan #2112
Replace generateIndexScan with costedIndexScan #2112
Conversation
51b5941
to
204e098
Compare
67e21c7
to
882b109
Compare
… test scripts instead (#2119)
Great catch on the full-text indexes! That new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CheckIndexedAccess
is a great addition to our test framework. Very cool. It was interesting to see which fulltext actions are eligible to use the index! Not as many cases as I was expecting.
There were a few query plans that stopped using IndexedTableAccess; it looked liked they both used BETWEEN
, so I'm guessing we just don't have support for turning that into an index range in the new code yet?
I'm still working through all the files, but wanted to go ahead and publish the current comments.
3f2c5c1
to
3d38753
Compare
Co-authored-by: JCOR11599 <[email protected]>
* Add more TPCC plans, fix the slow one * fixup plans * fix build * tweak sysbench plan * update plans
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding a couple more comments on query plan changes before I have to run go meet someone.
While reviewing the diff in Goland, I also noticed on line 3817 in query_plans.go that we aren't using a range index for an in subquery. I don't see that diff in GitHub right now for some reason though... the query is: SELECT a.* FROM mytable a inner join mytable b on (a.i = b.s) WHERE a.s not in ('1', '2', '3', '4')
//t.Skip("todo add tests and implement") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(minor) is this todo still needed?
re line 3817, that's a good catch the plan is wrong (the same query plan with IN works, just not the NOT IN). Will fix shortly |
…ql-server into max/switch-indexscan-rule
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finished digging through everything and didn't find anything else. Looks good!
Looks like the new Server Engine CI tests that Jennifer just added are failing for the TestFulltextIndexes tests though, because they can't find a matching full-text index.
Yeah it looks like the context for those tests loses a reference to the index added in setup. Trying to debug the state lag right now. Thank you for the thorough review! |
Swap the index costing rules. This leaves the old code in, I will delete in a follow-up.
InTuple
.