Skip to content
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

planner/cascades: introduce TransformationID in cascades planner #12879

Merged
merged 4 commits into from
Oct 23, 2019

Conversation

francis0407
Copy link
Member

@francis0407 francis0407 commented Oct 22, 2019

What problem does this PR solve?

This PR introduces TransformationID in cascades planner. TransformationID is the handle of a Transformation. When we want to add a new Transformation rule, we should first add its ID, and create the rule in the transformationRuleList with the same order..

With the TransformationID, we can index the Transforamtion by its ID instead of its pointer address.

What is changed and how it works?

Check List

Tests

  • No code

Code changes

  • Has exported function/method change

@francis0407 francis0407 added the sig/planner SIG: Planner label Oct 22, 2019
@codecov
Copy link

codecov bot commented Oct 22, 2019

Codecov Report

Merging #12879 into master will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             master     #12879   +/-   ##
===========================================
  Coverage   80.0037%   80.0037%           
===========================================
  Files           465        465           
  Lines        107290     107290           
===========================================
  Hits          85836      85836           
  Misses        14989      14989           
  Partials       6465       6465

@francis0407
Copy link
Member Author

/run-unit-test

1 similar comment
@francis0407
Copy link
Member Author

/run-unit-test

@@ -31,21 +31,23 @@ var DefaultOptimizer = NewOptimizer()
type Optimizer struct {
transformationRuleMap map[memo.Operand][]Transformation
implementationRuleMap map[memo.Operand][]ImplementationRule
patternMap map[Transformation]*memo.Pattern
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about adding a ID field to pattern and changing the map to []*memoPattern?

Copy link
Contributor

@eurekaka eurekaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@eurekaka eurekaka added the status/LGT1 Indicates that a PR has LGTM 1. label Oct 23, 2019
@francis0407 francis0407 changed the title planner/cascades: move patternMap to Optimizer struct planner/cascades: introduce TransformationID in cascades planner Oct 23, 2019
@francis0407
Copy link
Member Author

/run-unit-test

Copy link
Member

@winoros winoros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@winoros winoros added status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Oct 23, 2019
@sre-bot
Copy link
Contributor

sre-bot commented Oct 23, 2019

/run-all-tests

@sre-bot sre-bot merged commit 07b926d into pingcap:master Oct 23, 2019
lfkdsk added a commit to JustProject/tidb that referenced this pull request Oct 26, 2019
…ect/tidb into feature-add-udf-support

* 'feature-add-udf-support' of https://github.com/JustProject/tidb: (26 commits)
  *: fix bug that the kill command doesn't work when the killed session is waiting for the pessimistic lock (pingcap#12852)
  executor: fix the projection upon the indexLookUp in indexLookUpJoin can't get result. (pingcap#12889)
  planner, executor: support create view on union (pingcap#12595)
  planner/cascades: introduce TransformationID in cascades planner (pingcap#12879)
  executor: fix data race in test (pingcap#12910)
  executor: reuse chunk row for insert on duplicate update (pingcap#12847)
  ddl: speed up tests (pingcap#12888)
  executor: speed up test (pingcap#12896)
  expression: implement vectorized evaluation for `builtinSecondSig` (pingcap#12886)
  expression: implement vectorized evaluation for `builtinJSONObjectSig` (pingcap#12663)
  expression: speed up builtinRepeatSig by using MergeNulls (pingcap#12674)
  expression: speed up unit tests under the expression package (pingcap#12887)
  store,kv: snapshot doesn't cache the non-exists kv entries lead to poor 'insert ignore' performance (pingcap#12872)
  executor: fix data race in `GetDirtyTable()` (pingcap#12767)
  domain: increase TTL to reduce the occurrence of reporting min startTS errors (pingcap#12578)
  executor: split test for speed up (pingcap#12881)
  executor: fix inconsistent of grants privileges with MySQL when executing `grant all on ...` (pingcap#12330)
  expression: implement vectorized evaluation for `builtinJSONUnquoteSig` (pingcap#12841)
  tune grpc connection count between tidb and tikv (pingcap#12884)
  Makefile: change test parallel to 8 (pingcap#12885)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/planner SIG: Planner status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants