Skip to content

branch-2.1: [fix](named_struct) fix named_struct signature which deduce wrong for nested decimal precision #48964 - #49190

Closed
github-actions[bot] wants to merge 1 commit into
branch-2.1from
auto-pick-48964-branch-2.1
Closed

branch-2.1: [fix](named_struct) fix named_struct signature which deduce wrong for nested decimal precision #48964#49190
github-actions[bot] wants to merge 1 commit into
branch-2.1from
auto-pick-48964-branch-2.1

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Cherry-picked from #48964

… nested decimal precision (#48964)
before this pr , we deduce the precision of the function named_struct
containing the decimal type is same with the precision of the decimal
type in select . In this case we can not make right named_struct for
multiple decimal value
like :
```
mysql> create table t01 (a decimal(6,3), d struct<col:bigint, col1:decimal(7,2)>) properties ("replication_num"="1");
Query OK, 0 rows affected (0.14 sec)
mysql> insert into t01 values (123.321, named_struct('col', 1, 'col1', 345.24));
Query OK, 1 row affected (0.26 sec)
{'label':'label_a2dc895ee7834701_841639ad6d93923f', 'status':'VISIBLE', 'txnId':'9010'}
mysql> select named_struct("col_11", a, "col_12", d) from t01;
+--------------------------------------------------------+
| named_struct("col_11", a, "col_12", d) |
+--------------------------------------------------------+
| {"col_11":123.321, "col_12":{"col":1, "col1":345.240}} |
+--------------------------------------------------------+
1 row in set (0.17 sec)
mysql> insert into t01 values (123.321, named_struct('col', 1, 'col1', 12345.24));
Query OK, 1 row affected (0.17 sec)
{'label':'label_77ed6047f6a6494d_810c26becfd0535c', 'status':'VISIBLE', 'txnId':'9011'}
mysql> select named_struct("col_11", a, "col_12", d) from t01;
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[E-255]Arithmetic overflow when converting value 12345.24 from type Decimal(7, 2) to type Decimal(6, 3)
mysql> desc verbose select named_struct("col_11", a, "col_12", d) from t01;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Explain String(Nereids Planner) |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| PLAN FRAGMENT 0 |
| OUTPUT EXPRS: |
| named_struct("col_11", a, "col_12", d)[#2] |
| PARTITION: RANDOM |
| |
| HAS_COLO_PLAN_NODE: false |
| |
| VRESULT SINK |
| MYSQL_PROTOCAL |
| |
| 0:VOlapScanNode(50) |
| TABLE: tt.t01(t01), PREAGGREGATION: ON |
| partitions=1/1 (t01) |
| tablets=10/10, tabletList=1741751856342,1741751856344,1741751856346 ... |
| cardinality=2, avgRowSize=2955.0, numNodes=1 |
| pushAggOp=NONE |
| final projections: named_struct('col_11', a[#0], 'col_12', CAST(d[#1] AS struct<col:bigint,col1:decimalv3(6,3)>)) |
| final project output tuple id: 1 |
| tuple ids: 0 |
| |
| Tuples: |
| TupleDescriptor{id=0, tbl=t01} |
| SlotDescriptor{id=0, col=a, colUniqueId=0, type=decimalv3(6,3), nullable=true, isAutoIncrement=false, subColPath=null} |
| SlotDescriptor{id=1, col=d, colUniqueId=1, type=struct<col:bigint,col1:decimalv3(7,2)>, nullable=true, isAutoIncrement=false, subColPath=null} |
| |
| TupleDescriptor{id=1, tbl=t01} |
| SlotDescriptor{id=2, col=null, colUniqueId=null, type=struct<col_11:decimalv3(6,3),col_12:struct<col:bigint,col1:decimalv3(6,3)>>, nullable=false, isAutoIncrement=false, subColPath=null} |
| |
| |
|
```
@yiguoleiyiguolei reopened this Mar 18, 2025
@yiguolei

Copy link
Copy Markdown
Contributor

run buildall

@github-actionsgithub-actionsBot added the approved Indicates a PR has been approved by one committer. label Mar 18, 2025
@github-actions

Copy link
Copy Markdown
ContributorAuthor

PR approved by at least one committer and no changes requested.

@github-actions

Copy link
Copy Markdown
ContributorAuthor

PR approved by anyone and no changes requested.

@amorynan

Copy link
Copy Markdown
Contributor

replace by #49355

@CalvinKirs
CalvinKirs deleted the auto-pick-48964-branch-2.1 branch March 28, 2025 06:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approvedIndicates a PR has been approved by one committer.reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@yiguolei@amorynan