Skip to content

Commit

Permalink
planner: fix nil pointer at expression.(*CorrelatedColumn).Eval (#42789
Browse files Browse the repository at this point in the history
…) (#48977)

close #42739
  • Loading branch information
ti-chi-bot authored Nov 29, 2023
1 parent 72e5323 commit 3aa520f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
2 changes: 2 additions & 0 deletions planner/core/logical_plan_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ func (b *PlanBuilder) buildAggregation(ctx context.Context, p LogicalPlan, aggFu
if _, ok = b.correlatedAggMapper[aggFuncList[j]]; !ok {
b.correlatedAggMapper[aggFuncList[j]] = &expression.CorrelatedColumn{
Column: *schema4Agg.Columns[aggIndexMap[j]],
Data: new(types.Datum),
}
}
b.correlatedAggMapper[aggFunc] = b.correlatedAggMapper[aggFuncList[j]]
Expand All @@ -309,6 +310,7 @@ func (b *PlanBuilder) buildAggregation(ctx context.Context, p LogicalPlan, aggFu
if _, ok := correlatedAggMap[aggFunc]; ok {
b.correlatedAggMapper[aggFunc] = &expression.CorrelatedColumn{
Column: column,
Data: new(types.Datum),
}
}
}
Expand Down
25 changes: 25 additions & 0 deletions planner/core/prepare_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2806,3 +2806,28 @@ func TestIssue37901(t *testing.T) {
tk.MustExec(`execute st1 using @t`)
tk.MustQuery(`select count(*) from t4`).Check(testkit.Rows("2"))
}

func TestIssue42739(t *testing.T) {
store := testkit.CreateMockStore(t)
tk := testkit.NewTestKit(t, store)

tk.MustExec(`use test`)
tk.MustExec(`drop table if exists t0`)
tk.MustExec(`CREATE TABLE t0 (c1 double, c2 double);`)
tk.MustExec(`select
exists (
select
subq_2.c0 as c8
from
(select
ref_153.c1 as c0
from
t0 as ref_153
group by ref_153.c1 having 0 <> (
select 1
from
t0 as ref_173
where count(ref_153.c2) = avg(ref_153.c2)
order by c1 desc limit 1)) as subq_2
) as c10;`)
}

0 comments on commit 3aa520f

Please sign in to comment.