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

Count of warning information is double when use in function #25829

Open
yuqi1129 opened this issue Jun 29, 2021 · 1 comment
Open

Count of warning information is double when use in function #25829

yuqi1129 opened this issue Jun 29, 2021 · 1 comment
Labels
severity/moderate sig/execution SIG execution type/bug The issue is confirmed as a bug.

Comments

@yuqi1129
Copy link
Contributor

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

run master branch and execute

select 1 in (0, '1a', 2); 

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

mysql> select 1 in (0, '1a', 2);
+-------------------+
| 1 in (0, '1a', 2) |
+-------------------+
|                 1 |
+-------------------+
1 row in set, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '1a' |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

3. What did you see instead (Required)

mysql> select 1 in (0, '1a', 2);
+-------------------+
| 1 in (0, '1a', 2) |
+-------------------+
|                 1 |
+-------------------+
1 row in set, 2 warnings (2.88 sec)

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '1a' |
| Warning | 1292 | Truncated incorrect DOUBLE value: '1a' |
+---------+------+----------------------------------------+
2 rows in set (2.22 sec)

4. What is your TiDB version? (Required)

master branch

@yuqi1129 yuqi1129 added the type/bug The issue is confirmed as a bug. label Jun 29, 2021
@dveeden
Copy link
Contributor

dveeden commented Jul 1, 2021

A breakpoint on ./sessionctx/stmtctx/stmtctx.go:467 shows two stacks that call AppendWarning:

(dlv) stack
 0  0x0000000001d1f973 in github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).AppendWarning
    at ./sessionctx/stmtctx/stmtctx.go:467
 1  0x0000000001d454f5 in github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).HandleTruncate
    at ./sessionctx/stmtctx/stmtctx.go:521
 2  0x0000000001d454f5 in github.com/pingcap/tidb/types.getValidFloatPrefix
    at ./types/convert.go:713
 3  0x0000000001d428ec in github.com/pingcap/tidb/types.getValidIntPrefix
    at ./types/convert.go:368
 4  0x0000000001d41990 in github.com/pingcap/tidb/types.StrToInt
    at ./types/convert.go:280
 5  0x0000000001d58785 in github.com/pingcap/tidb/types.(*Datum).toSignedInteger
    at ./types/datum.go:1709
 6  0x0000000001d5145d in github.com/pingcap/tidb/types.(*Datum).convertToInt
    at ./types/datum.go:1047
 7  0x0000000001d4e8d7 in github.com/pingcap/tidb/types.(*Datum).ConvertTo
    at ./types/datum.go:836
 8  0x0000000001ea5369 in github.com/pingcap/tidb/expression.RefineComparedConstant
    at ./expression/builtin_compare.go:1264
 9  0x0000000002531426 in github.com/pingcap/tidb/planner/core.(*expressionRewriter).inToExpression
    at ./planner/core/expression_rewriter.go:1418
10  0x000000000252bd2f in github.com/pingcap/tidb/planner/core.(*expressionRewriter).Leave
    at ./planner/core/expression_rewriter.go:1115
11  0x0000000001906d62 in github.com/pingcap/parser/ast.(*PatternInExpr).Accept
    at /home/dvaneeden/go/pkg/mod/github.com/pingcap/[email protected]/ast/expressions.go:762
12  0x000000000251ec1c in github.com/pingcap/tidb/planner/core.(*PlanBuilder).rewriteExprNode
    at ./planner/core/expression_rewriter.go:197
13  0x000000000251e58c in github.com/pingcap/tidb/planner/core.(*PlanBuilder).rewriteWithPreprocess
    at ./planner/core/expression_rewriter.go:143
14  0x000000000256fdc5 in github.com/pingcap/tidb/planner/core.(*PlanBuilder).buildProjection
    at ./planner/core/logical_plan_builder.go:1248
15  0x0000000002587b7e in github.com/pingcap/tidb/planner/core.(*PlanBuilder).buildSelect
    at ./planner/core/logical_plan_builder.go:3528
16  0x00000000025d5708 in github.com/pingcap/tidb/planner/core.(*PlanBuilder).Build
    at ./planner/core/planbuilder.go:655
17  0x00000000026eaac9 in github.com/pingcap/tidb/planner.optimize
    at ./planner/optimize.go:234
18  0x00000000026e9169 in github.com/pingcap/tidb/planner.Optimize
    at ./planner/optimize.go:124
19  0x0000000002d16b2d in github.com/pingcap/tidb/executor.(*Compiler).Compile
    at ./executor/compiler.go:61
20  0x0000000002e9aca9 in github.com/pingcap/tidb/session.(*session).ExecuteStmt
    at ./session/session.go:1508
21  0x0000000002f3be0b in github.com/pingcap/tidb/server.(*TiDBContext).ExecuteStmt
    at ./server/driver_tidb.go:218
22  0x0000000002f30c7b in github.com/pingcap/tidb/server.(*clientConn).handleStmt
    at ./server/conn.go:1691
23  0x0000000002f2ef12 in github.com/pingcap/tidb/server.(*clientConn).handleQuery
    at ./server/conn.go:1563
24  0x0000000002f2a27d in github.com/pingcap/tidb/server.(*clientConn).dispatch
    at ./server/conn.go:1097
25  0x0000000002f27096 in github.com/pingcap/tidb/server.(*clientConn).Run
    at ./server/conn.go:860
26  0x0000000002f5a5fe in github.com/pingcap/tidb/server.(*Server).onConn
    at ./server/server.go:485
27  0x000000000113eee1 in runtime.goexit
    at /usr/lib/golang/src/runtime/asm_amd64.s:1371
(dlv) stack
 0  0x0000000001d1f973 in github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).AppendWarning
    at ./sessionctx/stmtctx/stmtctx.go:467
 1  0x0000000001d454f5 in github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).HandleTruncate
    at ./sessionctx/stmtctx/stmtctx.go:521
 2  0x0000000001d454f5 in github.com/pingcap/tidb/types.getValidFloatPrefix
    at ./types/convert.go:713
 3  0x0000000001d4376e in github.com/pingcap/tidb/types.StrToFloat
    at ./types/convert.go:527
 4  0x0000000001d4ce55 in github.com/pingcap/tidb/types.(*Datum).compareString
    at ./types/datum.go:700
 5  0x0000000001d4b6a5 in github.com/pingcap/tidb/types.(*Datum).CompareDatum
    at ./types/datum.go:582
 6  0x0000000001ea55b7 in github.com/pingcap/tidb/expression.RefineComparedConstant
    at ./expression/builtin_compare.go:1276
 7  0x0000000002531426 in github.com/pingcap/tidb/planner/core.(*expressionRewriter).inToExpression
    at ./planner/core/expression_rewriter.go:1418
 8  0x000000000252bd2f in github.com/pingcap/tidb/planner/core.(*expressionRewriter).Leave
    at ./planner/core/expression_rewriter.go:1115
 9  0x0000000001906d62 in github.com/pingcap/parser/ast.(*PatternInExpr).Accept
    at /home/dvaneeden/go/pkg/mod/github.com/pingcap/[email protected]/ast/expressions.go:762
10  0x000000000251ec1c in github.com/pingcap/tidb/planner/core.(*PlanBuilder).rewriteExprNode
    at ./planner/core/expression_rewriter.go:197
11  0x000000000251e58c in github.com/pingcap/tidb/planner/core.(*PlanBuilder).rewriteWithPreprocess
    at ./planner/core/expression_rewriter.go:143
12  0x000000000256fdc5 in github.com/pingcap/tidb/planner/core.(*PlanBuilder).buildProjection
    at ./planner/core/logical_plan_builder.go:1248
13  0x0000000002587b7e in github.com/pingcap/tidb/planner/core.(*PlanBuilder).buildSelect
    at ./planner/core/logical_plan_builder.go:3528
14  0x00000000025d5708 in github.com/pingcap/tidb/planner/core.(*PlanBuilder).Build
    at ./planner/core/planbuilder.go:655
15  0x00000000026eaac9 in github.com/pingcap/tidb/planner.optimize
    at ./planner/optimize.go:234
16  0x00000000026e9169 in github.com/pingcap/tidb/planner.Optimize
    at ./planner/optimize.go:124
17  0x0000000002d16b2d in github.com/pingcap/tidb/executor.(*Compiler).Compile
    at ./executor/compiler.go:61
18  0x0000000002e9aca9 in github.com/pingcap/tidb/session.(*session).ExecuteStmt
    at ./session/session.go:1508
19  0x0000000002f3be0b in github.com/pingcap/tidb/server.(*TiDBContext).ExecuteStmt
    at ./server/driver_tidb.go:218
20  0x0000000002f30c7b in github.com/pingcap/tidb/server.(*clientConn).handleStmt
    at ./server/conn.go:1691
21  0x0000000002f2ef12 in github.com/pingcap/tidb/server.(*clientConn).handleQuery
    at ./server/conn.go:1563
22  0x0000000002f2a27d in github.com/pingcap/tidb/server.(*clientConn).dispatch
    at ./server/conn.go:1097
23  0x0000000002f27096 in github.com/pingcap/tidb/server.(*clientConn).Run
    at ./server/conn.go:860
24  0x0000000002f5a5fe in github.com/pingcap/tidb/server.(*Server).onConn
    at ./server/server.go:485
25  0x000000000113eee1 in runtime.goexit
    at /usr/lib/golang/src/runtime/asm_amd64.s:1371

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
severity/moderate sig/execution SIG execution type/bug The issue is confirmed as a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants