From 8db05395bced48e921c581b703ac4cc548878a74 Mon Sep 17 00:00:00 2001 From: lysu Date: Thu, 26 Mar 2020 19:25:38 +0800 Subject: [PATCH] chunk: make `mysql.TypeNull` be judged as fixedLen (#15512) --- executor/executor_test.go | 11 +++++++++++ util/chunk/codec.go | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/executor/executor_test.go b/executor/executor_test.go index 9841c6edcedd4..140bd4c374575 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -3596,6 +3596,17 @@ func (s *testSuite3) TestIndexJoinTableDualPanic(c *C) { Check(testkit.Rows("1 a")) } +func (s *testSuite3) TestSortLeftJoinWithNullColumnInRightChildPanic(c *C) { + tk := testkit.NewTestKit(c, s.store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t1, t2") + tk.MustExec("create table t1(a int)") + tk.MustExec("create table t2(a int)") + tk.MustExec("insert into t1(a) select 1;") + tk.MustQuery("select b.n from t1 left join (select a as a, null as n from t2) b on b.a = t1.a order by t1.a"). + Check(testkit.Rows("")) +} + func (s *testSuiteP1) TestUnionAutoSignedCast(c *C) { tk := testkit.NewTestKit(c, s.store) tk.MustExec("use test") diff --git a/util/chunk/codec.go b/util/chunk/codec.go index 2858fb89b55a7..9d0636f410119 100644 --- a/util/chunk/codec.go +++ b/util/chunk/codec.go @@ -173,7 +173,7 @@ func getFixedLen(colType *types.FieldType) int { case mysql.TypeFloat: return 4 case mysql.TypeTiny, mysql.TypeShort, mysql.TypeInt24, mysql.TypeLong, - mysql.TypeLonglong, mysql.TypeDouble, mysql.TypeYear, mysql.TypeDuration: + mysql.TypeLonglong, mysql.TypeDouble, mysql.TypeYear, mysql.TypeDuration, mysql.TypeNull: return 8 case mysql.TypeDate, mysql.TypeDatetime, mysql.TypeTimestamp: return sizeTime