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

[BugFix] fix cte output column duplicate #34904

Merged
merged 1 commit into from
Nov 15, 2023
Merged

Conversation

Seaven
Copy link
Contributor

@Seaven Seaven commented Nov 14, 2023

Fixes #34481

In CTE's MultiCastDataSinks(exchange-3), will prune column for CTE-consume, but set duplicate column, will crash when clone chunk

MySQL test_db> explain select * from t0
where (t0.v2 = 2) or t0.v3 in (select x0.v3 from t0 x0 where t0.v2 = x0.v3);
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Explain String                                                                                                                                                                                                                             |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| PLAN FRAGMENT 0                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:1: v1 | 2: v2 | 3: v3 | 4: v4 | 5: v5                                                                                                                                                                                        |
|   PARTITION: UNPARTITIONED                                                                                                                                                                                                                 |
|                                                                                                                                                                                                                                            |
|   RESULT SINK                                                                                                                                                                                                                              |
|                                                                                                                                                                                                                                            |
|   17:EXCHANGE                                                                                                                                                                                                                              |
|                                                                                                                                                                                                                                            |
| PLAN FRAGMENT 1                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:                                                                                                                                                                                                                             |
|   PARTITION: HASH_PARTITIONED: 14: v3                                                                                                                                                                                                      |
|                                                                                                                                                                                                                                            |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 17                                                                                                                                                                                                                        |
|     UNPARTITIONED                                                                                                                                                                                                                          |
|                                                                                                                                                                                                                                            |
|   16:Project                                                                                                                                                                                                                               |
|   |  <slot 1> : 1: v1                                                                                                                                                                                                                      |
|   |  <slot 2> : 2: v2                                                                                                                                                                                                                      |
|   |  <slot 3> : 3: v3                                                                                                                                                                                                                      |
|   |  <slot 4> : 4: v4                                                                                                                                                                                                                      |
|   |  <slot 5> : 5: v5                                                                                                                                                                                                                      |
|   |                                                                                                                                                                                                                                        |
|   15:HASH JOIN                                                                                                                                                                                                                             |
|   |  join op: LEFT OUTER JOIN (BUCKET_SHUFFLE(S))                                                                                                                                                                                          |
|   |  colocate: false, reason:                                                                                                                                                                                                              |
|   |  equal join conjunct: 3: v3 = 12: v3                                                                                                                                                                                                   |
|   |  equal join conjunct: 2: v2 = 12: v3                                                                                                                                                                                                   |
|   |  other predicates: (2: v2 = 2) OR (CASE WHEN (15: countRows IS NULL) OR (15: countRows = 0) THEN FALSE WHEN 3: v3 IS NULL THEN NULL WHEN 12: v3 IS NOT NULL THEN TRUE WHEN 16: countNotNulls < 15: countRows THEN NULL ELSE FALSE END) |
|   |                                                                                                                                                                                                                                        |
|   |----14:EXCHANGE                                                                                                                                                                                                                         |
|   |                                                                                                                                                                                                                                        |
|   8:Project                                                                                                                                                                                                                                |
|   |  <slot 1> : 1: v1                                                                                                                                                                                                                      |
|   |  <slot 2> : 2: v2                                                                                                                                                                                                                      |
|   |  <slot 3> : 3: v3                                                                                                                                                                                                                      |
|   |  <slot 4> : 4: v4                                                                                                                                                                                                                      |
|   |  <slot 5> : 5: v5                                                                                                                                                                                                                      |
|   |  <slot 15> : 15: countRows                                                                                                                                                                                                             |
|   |  <slot 16> : 16: countNotNulls                                                                                                                                                                                                         |
|   |                                                                                                                                                                                                                                        |
|   7:HASH JOIN                                                                                                                                                                                                                              |
|   |  join op: LEFT OUTER JOIN (BUCKET_SHUFFLE(S))                                                                                                                                                                                          |
|   |  colocate: false, reason:                                                                                                                                                                                                              |
|   |  equal join conjunct: 2: v2 = 14: v3                                                                                                                                                                                                   |
|   |                                                                                                                                                                                                                                        |
|   |----6:AGGREGATE (update finalize)                                                                                                                                                                                                       |
|   |    |  output: count(1), count(13: v3)                                                                                                                                                                                                  |
|   |    |  group by: 14: v3                                                                                                                                                                                                                 |
|   |    |                                                                                                                                                                                                                                   |
|   |    5:EXCHANGE                                                                                                                                                                                                                          |
|   |                                                                                                                                                                                                                                        |
|   2:EXCHANGE                                                                                                                                                                                                                               |
|                                                                                                                                                                                                                                            |
| PLAN FRAGMENT 2                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:                                                                                                                                                                                                                             |
|   PARTITION: HASH_PARTITIONED: 12: v3                                                                                                                                                                                                      |
|                                                                                                                                                                                                                                            |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 14                                                                                                                                                                                                                        |
|     HASH_PARTITIONED: 12: v3                                                                                                                                                                                                               |
|                                                                                                                                                                                                                                            |
|   13:AGGREGATE (merge finalize)                                                                                                                                                                                                            |
|   |  group by: 12: v3                                                                                                                                                                                                                      |
|   |                                                                                                                                                                                                                                        |
|   12:EXCHANGE                                                                                                                                                                                                                              |
|                                                                                                                                                                                                                                            |
| PLAN FRAGMENT 3                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:                                                                                                                                                                                                                             |
|   PARTITION: RANDOM                                                                                                                                                                                                                        |
|                                                                                                                                                                                                                                            |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 12                                                                                                                                                                                                                        |
|     HASH_PARTITIONED: 12: v3                                                                                                                                                                                                               |
|                                                                                                                                                                                                                                            |
|   11:AGGREGATE (update serialize)                                                                                                                                                                                                          |
|   |  STREAMING                                                                                                                                                                                                                             |
|   |  group by: 12: v3                                                                                                                                                                                                                      |
|   |                                                                                                                                                                                                                                        |
|   10:Project                                                                                                                                                                                                                               |
|   |  <slot 12> : 8: v3                                                                                                                                                                                                                     |
|   |                                                                                                                                                                                                                                        |
|   9:EXCHANGE                                                                                                                                                                                                                               |
|                                                                                                                                                                                                                                            |
| PLAN FRAGMENT 4                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:                                                                                                                                                                                                                             |
|   PARTITION: RANDOM                                                                                                                                                                                                                        |
|                                                                                                                                                                                                                                            |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 05                                                                                                                                                                                                                        |
|     HASH_PARTITIONED: 14: v3                                                                                                                                                                                                               |
|                                                                                                                                                                                                                                            |
|   4:Project                                                                                                                                                                                                                                |
|   |  <slot 13> : 8: v3                                                                                                                                                                                                                     |
|   |  <slot 14> : 8: v3                                                                                                                                                                                                                     |
|   |                                                                                                                                                                                                                                        |
|   3:EXCHANGE                                                                                                                                                                                                                               |
|                                                                                                                                                                                                                                            |
| PLAN FRAGMENT 5                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:                                                                                                                                                                                                                             |
|   PARTITION: RANDOM                                                                                                                                                                                                                        |
|                                                                                                                                                                                                                                            |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 02                                                                                                                                                                                                                        |
|     HASH_PARTITIONED: 2: v2                                                                                                                                                                                                                |
|                                                                                                                                                                                                                                            |
|   1:OlapScanNode                                                                                                                                                                                                                           |
|      TABLE: t0                                                                                                                                                                                                                             |
|      PREAGGREGATION: ON                                                                                                                                                                                                                    |
|      partitions=1/1                                                                                                                                                                                                                        |
|      rollup: t0                                                                                                                                                                                                                            |
|      tabletRatio=3/3                                                                                                                                                                                                                       |
|      tabletList=7426956,7426958,7426960                                                                                                                                                                                                    |
|      cardinality=2                                                                                                                                                                                                                         |
|      avgRowSize=41.0                                                                                                                                                                                                                       |
|                                                                                                                                                                                                                                            |
| PLAN FRAGMENT 6                                                                                                                                                                                                                            |
|  OUTPUT EXPRS:8: v3                                                                                                                                                                                                                        |
|   PARTITION: RANDOM                                                                                                                                                                                                                        |
|                                                                                                                                                                                                                                            |
|   MultiCastDataSinks                                                                                                                                                                                                                       |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 03                                                                                                                                                                                                                        |
|     RANDOM                                                                                                                                                                                                                                 |
|   STREAM DATA SINK                                                                                                                                                                                                                         |
|     EXCHANGE ID: 09                                                                                                                                                                                                                        |
|     RANDOM                                                                                                                                                                                                                                 |
|                                                                                                                                                                                                                                            |
|   0:OlapScanNode                                                                                                                                                                                                                           |
|      TABLE: t0                                                                                                                                                                                                                             |
|      PREAGGREGATION: ON                                                                                                                                                                                                                    |
|      partitions=1/1                                                                                                                                                                                                                        |
|      rollup: t0                                                                                                                                                                                                                            |
|      tabletRatio=3/3                                                                                                                                                                                                                       |
|      tabletList=7426956,7426958,7426960                                                                                                                                                                                                    |
|      cardinality=2                                                                                                                                                                                                                         |
|      avgRowSize=8.0                                                                                                                                                                                                                        |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

What type of PR is this:

  • BugFix
  • Feature
  • Enhancement
  • Refactor
  • UT
  • Doc
  • Tool

Does this PR entail a change in behavior?

  • Yes, this PR will result in a change in behavior.
  • No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

  • Interface/UI changes: syntax, type conversion, expression evaluation, display information
  • Parameter changes: default values, similar parameters but with different default values
  • Policy changes: use new policy to replace old one, functionality automatically enabled
  • Feature removed
  • Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

  • I have added test cases for my bug fix or my new feature
  • This pr needs user documentation (for new or modified features or behaviors)
    • I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

  • I have checked the version labels which the pr will be auto-backported to the target branch
    • 3.2
    • 3.1
    • 3.0
    • 2.5

Signed-off-by: Seaven <seaven_7@qq.com>
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

0.0% 0.0% Coverage
0.0% 0.0% Duplication

warning The version of Java (11.0.21) you have used to run this analysis is deprecated and we will stop accepting it soon. Please update to at least Java 17.
Read more here

Copy link

[FE Incremental Coverage Report]

pass : 3 / 3 (100.00%)

file detail

path covered_line new_line coverage not_covered_line_detail
🔵 com/starrocks/sql/plan/PlanFragmentBuilder.java 3 3 100.00% []

Copy link

[BE Incremental Coverage Report]

fail : 0 / 5 (00.00%)

file detail

path covered_line new_line coverage not_covered_line_detail
🔵 src/exec/pipeline/exchange/exchange_sink_operator.cpp 0 5 00.00% [498, 499, 502, 503, 504]

@Seaven Seaven changed the title [BugFix] fix cte output column lose schema [BugFix] fix cte output column duplicate Nov 15, 2023
@packy92 packy92 merged commit a2015c1 into StarRocks:main Nov 15, 2023
Copy link

@Mergifyio backport branch-3.2

@github-actions github-actions bot removed the 3.2 label Nov 15, 2023
Copy link

@Mergifyio backport branch-3.1

@github-actions github-actions bot removed the 3.1 label Nov 15, 2023
Copy link
Contributor

mergify bot commented Nov 15, 2023

backport branch-3.2

✅ Backports have been created

Copy link

@Mergifyio backport branch-3.0

@github-actions github-actions bot removed the 3.0 label Nov 15, 2023
Copy link

@Mergifyio backport branch-2.5

Copy link
Contributor

mergify bot commented Nov 15, 2023

backport branch-3.1

✅ Backports have been created

@github-actions github-actions bot removed the 2.5 label Nov 15, 2023
Copy link
Contributor

mergify bot commented Nov 15, 2023

backport branch-3.0

✅ Backports have been created

Copy link
Contributor

mergify bot commented Nov 15, 2023

backport branch-2.5

✅ Backports have been created

mergify bot pushed a commit that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
(cherry picked from commit a2015c1)
mergify bot pushed a commit that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
(cherry picked from commit a2015c1)

# Conflicts:
#	fe/fe-core/src/main/java/com/starrocks/sql/plan/PlanFragmentBuilder.java
mergify bot pushed a commit that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
(cherry picked from commit a2015c1)

# Conflicts:
#	fe/fe-core/src/main/java/com/starrocks/sql/plan/PlanFragmentBuilder.java
mergify bot pushed a commit that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
(cherry picked from commit a2015c1)

# Conflicts:
#	fe/fe-core/src/main/java/com/starrocks/sql/plan/PlanFragmentBuilder.java
wanpengfei-git pushed a commit that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
(cherry picked from commit a2015c1)
Seaven added a commit to Seaven/starrocks that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
Seaven added a commit to Seaven/starrocks that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
wanpengfei-git pushed a commit that referenced this pull request Nov 15, 2023
Signed-off-by: Seaven <seaven_7@qq.com>
kangkaisen pushed a commit that referenced this pull request Nov 15, 2023
kangkaisen pushed a commit that referenced this pull request Nov 15, 2023
luohaha pushed a commit to luohaha/starrocks that referenced this pull request Nov 17, 2023
@Seaven Seaven deleted the fix3 branch December 5, 2023 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SQLSTATE[HY000]: General error: 1064 build chunk meta error
3 participants