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

tidb throws error when querying zero datetime with table statistics #56480

Closed
mzhang77 opened this issue Oct 8, 2024 · 3 comments
Closed

tidb throws error when querying zero datetime with table statistics #56480

mzhang77 opened this issue Oct 8, 2024 · 3 comments
Assignees
Labels
affects-5.4 This bug affects the 5.4.x(LTS) versions. affects-6.1 This bug affects the 6.1.x(LTS) versions. affects-6.5 This bug affects the 6.5.x(LTS) versions. affects-7.1 This bug affects the 7.1.x(LTS) versions. affects-7.5 This bug affects the 7.5.x(LTS) versions. report/customer Customers have encountered this bug. severity/major sig/planner SIG: Planner type/bug The issue is confirmed as a bug.

Comments

@mzhang77
Copy link

mzhang77 commented Oct 8, 2024

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

For certain sql_mode, timestamp data type allows values '0000-00-00 00:00:00'.

2. What did you expect to see? (Required)

There should be no error if a row has timpstamp column with value '0000-00-00 00:00:00'

3. What did you see instead (Required)

lots of following errors in tidb log:

[2024/09/30 22:03:52.873 +00:00] [ERROR] [terror.go:324] ["encountered error"] [error="[types:1292]Incorrect time value: '{0 0 0 0 0 0 0}'"] [stack="github.com/pingcap/tidb/pkg/parser/terror.Log\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/parser/terror/terror.go:324\ngithub.jparrowsec.cn/pingcap/tidb/pkg/types.(*Time).Sub\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/types/time.go:706\ngithub.jparrowsec.cn/pingcap/tidb/pkg/statistics.convertDatumToScalar\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/statistics/scalar.go:77\ngithub.jparrowsec.cn/pingcap/tidb/pkg/statistics.(*Histogram).OutOfRangeRowCount\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/statistics/histogram.go:955\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/cardinality.GetColumnRowCount\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/cardinality/row_count_column.go:291\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/cardinality.GetRowCountByColumnRanges\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/cardinality/row_count_column.go:66\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/cardinality.expBackoffEstimation\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/cardinality/row_count_index.go:435\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/cardinality.getIndexRowCountForStatsV2\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/cardinality/row_count_index.go:285\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/cardinality.GetRowCountByIndexRanges\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/cardinality/row_count_index.go:86\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*DataSource).detachCondAndBuildRangeForPath\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/logical_plans.go:1681\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*DataSource).fillIndexPath\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/logical_plans.go:1835\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*DataSource).DeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/stats.go:474\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*baseLogicalPlan).recursiveDeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/stats.go:139\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*baseLogicalPlan).recursiveDeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/stats.go:132\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*baseLogicalPlan).recursiveDeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/stats.go:132\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.(*baseLogicalPlan).recursiveDeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/stats.go:132\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.physicalOptimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/optimizer.go:1189\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.DoOptimizeAndLogicAsRet\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/optimizer.go:334\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.DoOptimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/optimizer.go:359\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner.optimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/optimize.go:531\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner.Optimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/optimize.go:352\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.generateNewPlan\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/plan_cache.go:313\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner/core.GetPlanFromSessionPlanCache\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/core/plan_cache.go:212\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner.OptimizeExecStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/optimize.go:553\ngithub.jparrowsec.cn/pingcap/tidb/pkg/planner.Optimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/planner/optimize.go:180\ngithub.jparrowsec.cn/pingcap/tidb/pkg/executor.(*Compiler).Compile\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/executor/compiler.go:98\ngithub.jparrowsec.cn/pingcap/tidb/pkg/session.(*session).ExecuteStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/session/session.go:2221\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*TiDBContext).ExecuteStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/driver_tidb.go:292\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*clientConn).executePreparedStmtAndWriteResult\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn_stmt.go:306\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*clientConn).executePlanCacheStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn_stmt.go:234\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*clientConn).handleStmtExecute\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn_stmt.go:225\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*clientConn).dispatch\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:1345\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*clientConn).Run\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:1091\ngithub.jparrowsec.cn/pingcap/tidb/pkg/server.(*Server).onConn\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/server.go:715"]

4. What is your TiDB version? (Required)

v7.5.1

@mzhang77 mzhang77 added the type/bug The issue is confirmed as a bug. label Oct 8, 2024
@winoros winoros added affects-6.5 This bug affects the 6.5.x(LTS) versions. affects-7.1 This bug affects the 7.1.x(LTS) versions. affects-7.5 This bug affects the 7.5.x(LTS) versions. sig/planner SIG: Planner labels Oct 8, 2024
@winoros
Copy link
Member

winoros commented Oct 8, 2024

It's been fixed by #52615, begin from v8.1.
<= 7.5 needs a extra fix for it.

@winoros
Copy link
Member

winoros commented Oct 8, 2024

This issue is created for recording the affected releases.
Close because it's fixed in master.

@winoros winoros closed this as completed Oct 8, 2024
@winoros winoros changed the title tidb log shows statistics error all the time tidb throws error when querying zero datetime with table statistics Oct 8, 2024
@ti-chi-bot ti-chi-bot bot added may-affects-5.4 This bug maybe affects 5.4.x versions. may-affects-6.1 may-affects-8.1 labels Oct 8, 2024
@winoros winoros removed may-affects-5.4 This bug maybe affects 5.4.x versions. may-affects-6.1 may-affects-8.1 labels Oct 9, 2024
@seiya-annie
Copy link

/report customer

@ti-chi-bot ti-chi-bot bot added report/customer Customers have encountered this bug. affects-6.1 This bug affects the 6.1.x(LTS) versions. affects-5.4 This bug affects the 5.4.x(LTS) versions. labels Dec 18, 2024
@winoros winoros self-assigned this Feb 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-5.4 This bug affects the 5.4.x(LTS) versions. affects-6.1 This bug affects the 6.1.x(LTS) versions. affects-6.5 This bug affects the 6.5.x(LTS) versions. affects-7.1 This bug affects the 7.1.x(LTS) versions. affects-7.5 This bug affects the 7.5.x(LTS) versions. report/customer Customers have encountered this bug. severity/major sig/planner SIG: Planner type/bug The issue is confirmed as a bug.
Projects
None yet
Development

No branches or pull requests

3 participants