From 1d2fd36a79ce9a4c9e50d7fc5ed85e644c02a1a4 Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Sun, 8 Oct 2023 16:13:53 +0800 Subject: [PATCH] ddl: fix DST times for adding index (#47425) (#47449) ref pingcap/tidb#46033, close pingcap/tidb#47426 --- ddl/db_test.go | 10 +++++----- ddl/index_cop.go | 2 +- ddl/ingest/integration_test.go | 3 +++ ddl/util/util.go | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ddl/db_test.go b/ddl/db_test.go index 407d2e1734718..0608f1c647f4c 100644 --- a/ddl/db_test.go +++ b/ddl/db_test.go @@ -138,12 +138,12 @@ func TestGetTimeZone(t *testing.T) { offset int err string }{ - {"set time_zone = '+00:00'", "", "UTC", 0, ""}, - {"set time_zone = '-00:00'", "", "UTC", 0, ""}, + {"set time_zone = '+00:00'", "", "", 0, ""}, + {"set time_zone = '-00:00'", "", "", 0, ""}, {"set time_zone = 'UTC'", "UTC", "UTC", 0, ""}, - {"set time_zone = '+05:00'", "", "UTC", 18000, ""}, - {"set time_zone = '-08:00'", "", "UTC", -28800, ""}, - {"set time_zone = '+08:00'", "", "UTC", 28800, ""}, + {"set time_zone = '+05:00'", "", "", 18000, ""}, + {"set time_zone = '-08:00'", "", "", -28800, ""}, + {"set time_zone = '+08:00'", "", "", 28800, ""}, {"set time_zone = 'Asia/Shanghai'", "Asia/Shanghai", "Asia/Shanghai", 0, ""}, {"set time_zone = 'SYSTEM'", "Asia/Shanghai", "Asia/Shanghai", 0, ""}, {"set time_zone = DEFAULT", "Asia/Shanghai", "Asia/Shanghai", 0, ""}, diff --git a/ddl/index_cop.go b/ddl/index_cop.go index 30d1f2a11cfec..b8c71a8d532a0 100644 --- a/ddl/index_cop.go +++ b/ddl/index_cop.go @@ -337,7 +337,7 @@ func getRestoreData(tblInfo *model.TableInfo, targetIdx, pkIdx *model.IndexInfo, func buildDAGPB(sCtx sessionctx.Context, tblInfo *model.TableInfo, colInfos []*model.ColumnInfo) (*tipb.DAGRequest, error) { dagReq := &tipb.DAGRequest{} - _, dagReq.TimeZoneOffset = timeutil.Zone(sCtx.GetSessionVars().Location()) + dagReq.TimeZoneName, dagReq.TimeZoneOffset = timeutil.Zone(sCtx.GetSessionVars().Location()) sc := sCtx.GetSessionVars().StmtCtx dagReq.Flags = sc.PushDownFlags() for i := range colInfos { diff --git a/ddl/ingest/integration_test.go b/ddl/ingest/integration_test.go index 3bb5846e1d4d2..4e6da885dae58 100644 --- a/ddl/ingest/integration_test.go +++ b/ddl/ingest/integration_test.go @@ -266,12 +266,15 @@ func TestAddIndexIngestTimezone(t *testing.T) { tk.MustExec("SET time_zone = '-06:00';") tk.MustExec("create table t (`src` varchar(48),`t` timestamp,`timezone` varchar(100));") tk.MustExec("insert into t values('2000-07-29 23:15:30','2000-07-29 23:15:30','-6:00');") + // Test Daylight time. + tk.MustExec("insert into t values('1991-07-21 00:00:00','1991-07-21 00:00:00','-6:00');") tk.MustExec("alter table t add index idx(t);") tk.MustExec("admin check table t;") tk.MustExec("alter table t drop index idx;") tk.MustExec("SET time_zone = 'Asia/Shanghai';") tk.MustExec("insert into t values('2000-07-29 23:15:30','2000-07-29 23:15:30', '+8:00');") + tk.MustExec("insert into t values('1991-07-21 00:00:00','1991-07-21 00:00:00','+8:00');") tk.MustExec("alter table t add index idx(t);") tk.MustExec("admin check table t;") } diff --git a/ddl/util/util.go b/ddl/util/util.go index a384feff3d45a..70392debb8f06 100644 --- a/ddl/util/util.go +++ b/ddl/util/util.go @@ -232,7 +232,7 @@ func GetTimeZone(sctx sessionctx.Context) (string, int) { } } _, offset := time.Now().In(loc).Zone() - return "UTC", offset + return "", offset } // enableEmulatorGC means whether to enable emulator GC. The default is enable.