Skip to content

Commit f16f700

Browse files
committed
1 parent 7b845f9 commit f16f700

File tree

5 files changed

+25
-14
lines changed

5 files changed

+25
-14
lines changed

executor/index_advise_test.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ and b.txn_accno = a.new_accno;`
112112
{" └─Selection_11"},
113113
{" └─IndexRangeScan_10"},
114114
}
115-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = true
115+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='ON'")
116116
tk.MustQuery("explain "+sql).CheckAt([]int{0}, rows)
117117
rows = [][]interface{}{
118118
{"Update_8"},
@@ -123,10 +123,10 @@ and b.txn_accno = a.new_accno;`
123123
{" └─Selection_13"},
124124
{" └─TableFullScan_12"},
125125
}
126-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = false
126+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='OFF'")
127127
tk.MustQuery("explain "+sql).CheckAt([]int{0}, rows)
128128

129-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = true
129+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='ON'")
130130
tk.MustExec(sql)
131131
tk.MustQuery("select yn_frz from t2").Check(testkit.Rows("1"))
132132
}
@@ -183,7 +183,7 @@ txn_dt date default null
183183
{" └─Selection_15"},
184184
{" └─TableFullScan_14"},
185185
}
186-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = false
186+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='OFF'")
187187
tk.MustQuery("explain "+sql).CheckAt([]int{0}, rows)
188188
rows = [][]interface{}{
189189
{"IndexJoin_12"},
@@ -195,10 +195,10 @@ txn_dt date default null
195195
{" └─Selection_10(Probe)"},
196196
{" └─TableRowIDScan_9"},
197197
}
198-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = true
198+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='ON'")
199199
tk.MustQuery("explain "+sql).CheckAt([]int{0}, rows)
200-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = true
200+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='ON'")
201201
tk.MustQuery(sql).Check(testkit.Rows("1 2022-12-01 123 1 2022-12-01 123 1 <nil>"))
202-
tk.Session().GetSessionVars().EnableIndexJoinInnerSideMultiPattern = false
202+
tk.MustExec("set @@session.tidb_enable_inl_join_inner_multi_pattern='OFF'")
203203
tk.MustQuery(sql).Check(testkit.Rows("1 2022-12-01 123 1 2022-12-01 123 1 <nil>"))
204204
}

planner/core/exhaust_physical_plans.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ func (p *LogicalJoin) extractIndexJoinInnerChildPattern(innerChild LogicalPlan)
726726
}
727727
}
728728
case *LogicalProjection:
729-
if !p.ctx.GetSessionVars().EnableIndexJoinInnerSideMultiPattern {
729+
if !p.ctx.GetSessionVars().EnableINLJoinInnerMultiPattern {
730730
return nil
731731
}
732732
// For now, we only allow proj with all Column expression can be the inner side of index join
@@ -742,7 +742,7 @@ func (p *LogicalJoin) extractIndexJoinInnerChildPattern(innerChild LogicalPlan)
742742
}
743743
wrapper.ds = ds
744744
case *LogicalSelection:
745-
if !p.ctx.GetSessionVars().EnableIndexJoinInnerSideMultiPattern {
745+
if !p.ctx.GetSessionVars().EnableINLJoinInnerMultiPattern {
746746
return nil
747747
}
748748
wrapper.sel = child
@@ -1050,7 +1050,7 @@ func (p *LogicalJoin) constructInnerTableScanTask(
10501050
}
10511051

10521052
func (p *LogicalJoin) constructInnerByWrapper(wrapper *indexJoinInnerChildWrapper, child PhysicalPlan) PhysicalPlan {
1053-
if !p.ctx.GetSessionVars().EnableIndexJoinInnerSideMultiPattern {
1053+
if !p.ctx.GetSessionVars().EnableINLJoinInnerMultiPattern {
10541054
if wrapper.us != nil {
10551055
return p.constructInnerUnionScan(wrapper.us, child)
10561056
}

sessionctx/variable/session.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -1055,10 +1055,9 @@ type SessionVars struct {
10551055
// When it is false, ANALYZE reads the latest data.
10561056
// When it is true, ANALYZE reads data on the snapshot at the beginning of ANALYZE.
10571057
EnableAnalyzeSnapshot bool
1058-
1059-
// EnableIndexJoinInnerSideMultiPattern indicates whether enable multi pattern for index join inner side
1060-
// For now it is not public to user
1061-
EnableIndexJoinInnerSideMultiPattern bool
1058+
1059+
// EnableINLJoinInnerMultiPattern indicates whether enable multi pattern for index join inner side
1060+
EnableINLJoinInnerMultiPattern bool
10621061
}
10631062

10641063
// InitStatementContext initializes a StatementContext, the object is reused to reduce allocation.

sessionctx/variable/sysvar.go

+9
Original file line numberDiff line numberDiff line change
@@ -1584,6 +1584,15 @@ var defaultSysVars = []*SysVar{
15841584
s.EnableAnalyzeSnapshot = TiDBOptOn(val)
15851585
return nil
15861586
}},
1587+
{Scope: ScopeGlobal | ScopeSession, Name: TiDBEnableINLJoinInnerMultiPattern, Value: BoolToOnOff(false), Type: TypeBool,
1588+
SetSession: func(s *SessionVars, val string) error {
1589+
s.EnableINLJoinInnerMultiPattern = TiDBOptOn(val)
1590+
return nil
1591+
},
1592+
GetSession: func(s *SessionVars) (string, error) {
1593+
return BoolToOnOff(s.EnableINLJoinInnerMultiPattern), nil
1594+
},
1595+
},
15871596
}
15881597

15891598
// FeedbackProbability points to the FeedbackProbability in statistics package.

sessionctx/variable/tidb_vars.go

+3
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,9 @@ const (
652652
// When set to false, ANALYZE reads the latest data.
653653
// When set to true, ANALYZE reads data on the snapshot at the beginning of ANALYZE.
654654
TiDBEnableAnalyzeSnapshot = "tidb_enable_analyze_snapshot"
655+
656+
// TiDBEnableINLJoinInnerMultiPattern indicates whether enable multi pattern for inner side of inl join
657+
TiDBEnableINLJoinInnerMultiPattern = "tidb_enable_inl_join_inner_multi_pattern"
655658
)
656659

657660
// TiDB vars that have only global scope

0 commit comments

Comments
 (0)