Skip to content

Conversation

@Mryange
Copy link
Contributor

@Mryange Mryange commented Feb 25, 2025

What problem does this PR solve?

error code

        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();

If column is a const(nullable) column,
execute: nested_column = nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column.
Execute: const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr();
nested_column points to the nested column of the new nullable column, and the original nullable column is released.

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

@hello-stephen
Copy link
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@Mryange
Copy link
Contributor Author

Mryange commented Feb 25, 2025

run buildall

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Feb 25, 2025
@github-actions
Copy link
Contributor

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

@github-actions
Copy link
Contributor

PR approved by anyone and no changes requested.

@doris-robot
Copy link

TPC-H: Total hot run time: 31645 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 6cfc24ad09be8a700db1d3b18014f2509989ea51, data reload: false

------ Round 1 ----------------------------------
q1	17566	5162	5020	5020
q2	2057	296	180	180
q3	10563	1242	739	739
q4	10214	1038	543	543
q5	7526	2307	2381	2307
q6	194	170	133	133
q7	902	752	607	607
q8	9326	1275	1132	1132
q9	5080	4772	4965	4772
q10	6889	2320	1883	1883
q11	487	277	250	250
q12	343	388	225	225
q13	18058	3675	3085	3085
q14	236	228	207	207
q15	505	462	455	455
q16	618	614	586	586
q17	569	834	351	351
q18	6586	6328	6243	6243
q19	1358	931	527	527
q20	312	315	180	180
q21	2655	2117	1908	1908
q22	378	335	312	312
Total cold run time: 102422 ms
Total hot run time: 31645 ms

----- Round 2, with runtime_filter_mode=off -----
q1	5084	5067	5094	5067
q2	225	327	228	228
q3	2152	2688	2295	2295
q4	1437	1802	1371	1371
q5	4223	4115	4154	4115
q6	201	165	122	122
q7	1856	1814	1660	1660
q8	2566	2623	2534	2534
q9	7298	7273	7353	7273
q10	3041	3233	2812	2812
q11	584	535	495	495
q12	727	808	656	656
q13	3693	4046	3366	3366
q14	277	285	266	266
q15	509	471	469	469
q16	637	703	670	670
q17	1143	1629	1324	1324
q18	7571	7357	7265	7265
q19	807	812	981	812
q20	1965	2038	1862	1862
q21	5507	4940	4697	4697
q22	611	586	539	539
Total cold run time: 52114 ms
Total hot run time: 49898 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 190904 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 6cfc24ad09be8a700db1d3b18014f2509989ea51, data reload: false

query1	1305	923	935	923
query2	6228	1891	1873	1873
query3	11103	4597	4333	4333
query4	52877	24477	23232	23232
query5	4973	549	471	471
query6	329	193	181	181
query7	4921	503	298	298
query8	311	247	241	241
query9	5532	2535	2528	2528
query10	429	322	258	258
query11	15132	15249	14889	14889
query12	159	106	106	106
query13	1034	523	365	365
query14	10242	6715	6808	6715
query15	221	214	176	176
query16	7120	676	480	480
query17	1066	701	574	574
query18	1508	411	305	305
query19	229	192	163	163
query20	124	123	132	123
query21	218	125	106	106
query22	4330	4544	4303	4303
query23	33812	33932	33277	33277
query24	5705	2429	2466	2429
query25	447	470	420	420
query26	668	280	157	157
query27	1741	498	331	331
query28	2732	2462	2435	2435
query29	596	586	496	496
query30	218	203	166	166
query31	874	868	844	844
query32	73	73	61	61
query33	446	353	295	295
query34	766	862	527	527
query35	815	842	784	784
query36	953	1006	898	898
query37	113	94	77	77
query38	4189	4211	4126	4126
query39	1522	1431	1443	1431
query40	213	115	98	98
query41	49	49	48	48
query42	125	105	109	105
query43	493	498	488	488
query44	1296	810	795	795
query45	182	178	164	164
query46	869	1073	663	663
query47	1844	1914	1783	1783
query48	395	404	304	304
query49	712	520	412	412
query50	729	736	436	436
query51	4225	4320	4285	4285
query52	107	113	96	96
query53	234	256	191	191
query54	511	534	425	425
query55	88	84	78	78
query56	275	303	282	282
query57	1206	1211	1118	1118
query58	272	256	253	253
query59	2905	2870	2782	2782
query60	281	309	271	271
query61	122	118	120	118
query62	744	744	682	682
query63	229	197	195	195
query64	1439	1048	676	676
query65	3316	3228	3245	3228
query66	719	402	301	301
query67	15929	15360	15259	15259
query68	5717	878	505	505
query69	542	317	271	271
query70	1170	1113	1112	1112
query71	445	295	262	262
query72	5939	3791	3939	3791
query73	1137	736	339	339
query74	9034	9290	8991	8991
query75	3227	3168	2691	2691
query76	3782	1168	744	744
query77	539	368	287	287
query78	10069	10170	9371	9371
query79	2720	824	582	582
query80	663	527	446	446
query81	515	273	238	238
query82	526	121	92	92
query83	186	173	151	151
query84	288	100	69	69
query85	783	346	404	346
query86	375	302	276	276
query87	4557	4438	4578	4438
query88	3529	2163	2178	2163
query89	407	315	288	288
query90	1781	192	198	192
query91	132	137	109	109
query92	73	59	60	59
query93	2263	1053	574	574
query94	700	400	294	294
query95	343	264	262	262
query96	486	554	263	263
query97	3361	3403	3307	3307
query98	234	204	204	204
query99	1331	1411	1254	1254
Total cold run time: 291424 ms
Total hot run time: 190904 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 44.62% (11897/26660)
Line Coverage: 34.09% (99500/291881)
Region Coverage: 33.25% (50911/153135)
Branch Coverage: 28.80% (25554/88730)
Coverage Report: http://coverage.selectdb-in.cc/coverage/6cfc24ad09be8a700db1d3b18014f2509989ea51_6cfc24ad09be8a700db1d3b18014f2509989ea51/report/index.html
Increment Report: http://coverage.selectdb-in.cc/coverage/6cfc24ad09be8a700db1d3b18014f2509989ea51_6cfc24ad09be8a700db1d3b18014f2509989ea51/increment_report/index.html

@doris-robot
Copy link

ClickBench: Total hot run time: 31.17 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 6cfc24ad09be8a700db1d3b18014f2509989ea51, data reload: false

query1	0.04	0.04	0.03
query2	0.07	0.04	0.03
query3	0.24	0.08	0.06
query4	1.64	0.10	0.10
query5	0.55	0.54	0.54
query6	1.19	0.72	0.74
query7	0.03	0.02	0.02
query8	0.04	0.03	0.03
query9	0.59	0.53	0.52
query10	0.59	0.59	0.57
query11	0.17	0.11	0.11
query12	0.15	0.12	0.12
query13	0.61	0.59	0.59
query14	2.66	2.82	2.81
query15	0.92	0.86	0.84
query16	0.38	0.38	0.38
query17	0.98	1.04	1.02
query18	0.23	0.20	0.19
query19	1.94	1.85	2.05
query20	0.01	0.02	0.01
query21	15.39	0.91	0.56
query22	0.75	1.37	0.79
query23	14.78	1.40	0.63
query24	6.81	0.70	1.57
query25	0.55	0.31	0.18
query26	0.57	0.16	0.14
query27	0.05	0.05	0.05
query28	9.96	0.91	0.44
query29	12.54	4.00	3.30
query30	0.24	0.08	0.06
query31	3.02	0.60	0.40
query32	3.51	0.57	0.48
query33	3.00	2.99	3.03
query34	15.90	5.19	4.59
query35	4.55	4.53	4.60
query36	0.67	0.50	0.48
query37	0.09	0.06	0.06
query38	0.06	0.04	0.03
query39	0.03	0.02	0.02
query40	0.18	0.14	0.13
query41	0.08	0.03	0.02
query42	0.03	0.02	0.02
query43	0.03	0.03	0.03
Total cold run time: 105.82 s
Total hot run time: 31.17 s

@BiteTheDDDDt BiteTheDDDDt merged commit 62159c7 into apache:master Feb 25, 2025
28 of 30 checks passed
zhiqiang-hhhh pushed a commit to zhiqiang-hhhh/doris that referenced this pull request Feb 27, 2025
…en input Const(Nullable) column (apache#48288)

### What problem does this PR solve?

error code 
```
        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();
```

If column is a const(nullable) column, 
execute: nested_column =
nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column. 
Execute: const auto* source_column = assert_cast<const
ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but
does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr(); 
nested_column points to the nested column of the new nullable column,
and the original nullable column is released.




### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
seawinde pushed a commit to seawinde/doris that referenced this pull request Feb 28, 2025
…en input Const(Nullable) column (apache#48288)

### What problem does this PR solve?

error code 
```
        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();
```

If column is a const(nullable) column, 
execute: nested_column =
nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column. 
Execute: const auto* source_column = assert_cast<const
ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but
does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr(); 
nested_column points to the nested column of the new nullable column,
and the original nullable column is released.




### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
github-actions bot pushed a commit that referenced this pull request Mar 19, 2025
…en input Const(Nullable) column (#48288)

### What problem does this PR solve?

error code 
```
        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();
```

If column is a const(nullable) column, 
execute: nested_column =
nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column. 
Execute: const auto* source_column = assert_cast<const
ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but
does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr(); 
nested_column points to the nested column of the new nullable column,
and the original nullable column is released.




### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
github-actions bot pushed a commit that referenced this pull request Mar 19, 2025
…en input Const(Nullable) column (#48288)

### What problem does this PR solve?

error code 
```
        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();
```

If column is a const(nullable) column, 
execute: nested_column =
nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column. 
Execute: const auto* source_column = assert_cast<const
ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but
does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr(); 
nested_column points to the nested column of the new nullable column,
and the original nullable column is released.




### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
Mryange added a commit to Mryange/doris that referenced this pull request Mar 19, 2025
…en input Const(Nullable) column (apache#48288)

### What problem does this PR solve?

error code 
```
        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();
```

If column is a const(nullable) column, 
execute: nested_column =
nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column. 
Execute: const auto* source_column = assert_cast<const
ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but
does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr(); 
nested_column points to the nested column of the new nullable column,
and the original nullable column is released.




### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
yiguolei pushed a commit that referenced this pull request Mar 20, 2025
dataroaring pushed a commit that referenced this pull request Mar 20, 2025
…fter-free when input Const(Nullable) column #48288 (#49246)

Cherry-picked from #48288

Co-authored-by: Mryange <yanxuecheng@selectdb.com>
@gavinchou gavinchou mentioned this pull request Apr 23, 2025
starocean999 pushed a commit to starocean999/incubator-doris that referenced this pull request Apr 27, 2025
koarz pushed a commit to koarz/doris that referenced this pull request Jun 4, 2025
…en input Const(Nullable) column (apache#48288)

### What problem does this PR solve?

error code 
```
        ColumnPtr nested_column = column;
        if (column) {
            nested_column = nested_column->convert_to_full_column_if_const();
            const auto* source_column = assert_cast<const ColumnNullable*>(nested_column.get());
            nested_column = source_column->get_nested_column_ptr();
```

If column is a const(nullable) column, 
execute: nested_column =
nested_column->convert_to_full_column_if_const();
nested_column points to a new nullable column. 
Execute: const auto* source_column = assert_cast<const
ColumnNullable*>(nested_column.get());
source_column, this raw pointer, points to the new nullable column (but
does not have ownership).
Execute: nested_column = source_column->get_nested_column_ptr(); 
nested_column points to the nested column of the new nullable column,
and the original nullable column is released.




### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [x] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [x] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. dev/2.1.9-merged dev/3.0.5-merged p0_c reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants