Skip to content

Conversation

@qidaye
Copy link
Contributor

@qidaye qidaye commented Oct 29, 2024

Proposed changes

Add column_unique_ids in TOlapTableIndex thrift struct, to get col_unique_id when building index.

@doris-robot
Copy link

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

Since 2024-03-18, the Document has been moved to doris-website.
See Doris Document.

@qidaye
Copy link
Contributor Author

qidaye commented Oct 29, 2024

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 37.48% (9721/25938)
Line Coverage: 28.74% (80646/280624)
Region Coverage: 28.15% (41678/148043)
Branch Coverage: 24.72% (21174/85670)
Coverage Report: http://coverage.selectdb-in.cc/coverage/8ae42e1d2eb682bbbe1c5d612be3ec2179830716_8ae42e1d2eb682bbbe1c5d612be3ec2179830716/report/index.html

@qidaye qidaye force-pushed the fix_renamed_col_build_index branch from 8ae42e1 to afa6caf Compare October 30, 2024 10:35
@qidaye
Copy link
Contributor Author

qidaye commented Oct 30, 2024

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 37.89% (9845/25985)
Line Coverage: 29.16% (81990/281133)
Region Coverage: 28.54% (42305/148256)
Branch Coverage: 25.05% (21489/85784)
Coverage Report: http://coverage.selectdb-in.cc/coverage/afa6caf916fdb645526c095e8ac040bf2b48bb48_afa6caf916fdb645526c095e8ac040bf2b48bb48/report/index.html

@qidaye qidaye force-pushed the fix_renamed_col_build_index branch from afa6caf to f79a854 Compare October 31, 2024 09:13
@qidaye
Copy link
Contributor Author

qidaye commented Oct 31, 2024

run buiildall

@qidaye qidaye force-pushed the fix_renamed_col_build_index branch from f79a854 to bd43995 Compare October 31, 2024 09:15
@qidaye
Copy link
Contributor Author

qidaye commented Oct 31, 2024

run buildall

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 37.94% (9850/25959)
Line Coverage: 29.19% (82057/281114)
Region Coverage: 28.45% (42355/148862)
Branch Coverage: 25.02% (21512/85990)
Coverage Report: http://coverage.selectdb-in.cc/coverage/bd43995f147a77986d4e807bc7e0475b5bcad4f4_bd43995f147a77986d4e807bc7e0475b5bcad4f4/report/index.html

Copy link
Member

@airborne12 airborne12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions
Copy link
Contributor

github-actions bot commented Nov 1, 2024

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

@github-actions github-actions bot added approved Indicates a PR has been approved by one committer. reviewed labels Nov 1, 2024
@github-actions
Copy link
Contributor

github-actions bot commented Nov 1, 2024

PR approved by anyone and no changes requested.

@qidaye qidaye merged commit faff198 into apache:master Nov 1, 2024
@qidaye qidaye deleted the fix_renamed_col_build_index branch November 1, 2024 03:15
github-actions bot pushed a commit that referenced this pull request Nov 1, 2024
Add `column_unique_ids` in `TOlapTableIndex` thrift struct, to get
col_unique_id when building index.
airborne12 pushed a commit that referenced this pull request Nov 5, 2024
Add `column_unique_ids` in `TOlapTableIndex` thrift struct, to get
col_unique_id when building index.
qidaye added a commit to qidaye/incubator-doris that referenced this pull request Nov 5, 2024
)

Add `column_unique_ids` in `TOlapTableIndex` thrift struct, to get
col_unique_id when building index.
airborne12 pushed a commit that referenced this pull request Nov 5, 2024
### What problem does this PR solve?
<!--
You need to clearly describe your PR in this part:

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 this function was added.
4. Which codes were refactored and why this part of the code was
refactored.
5. Which functions were optimized and what is the difference before and
after the optimization.

The description of the PR needs to enable reviewers to quickly and
clearly understand the logic of the code modification.
-->

<!--
If there are related issues, please fill in the issue number.
- If you want the issue to be closed after the PR is merged, please use
"close #12345". Otherwise, use "ref #12345"
-->
Introduced by #42882

<!--
If this PR is followup a preivous PR, for example, fix the bug that
introduced by a related PR,
link the PR here
-->
Related PR: #42882

Problem Summary:

### Check List (For Committer)

- Test <!-- At least one of them must be included. -->

    - [ ] Regression test
    - [ ] Unit Test
    - [x] 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 colde files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

#### TEST
- Upgrade the BE first, then use build index, and it will core dump.
- Manual testing shows that it doesn't core dump after the upgrade.
1. Execute ADD INDEX
2. Upgrade BE
3. Execute BUILD INDEX

- 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 -->

- Release note

    <!-- bugfix, feat, behavior changed need a release note -->
    <!-- Add one line release note for this PR. -->
    None

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

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
airborne12 pushed a commit that referenced this pull request Nov 5, 2024
#43044)

PR Body: ## Proposed changes

Add `column_unique_ids` in `TOlapTableIndex` thrift struct, to get
col_unique_id when building index.

 
 Cherry-picked from #42882

Co-authored-by: qiye <jianliang5669@gmail.com>
csun5285 added a commit to csun5285/doris that referenced this pull request Nov 6, 2024
### What problem does this PR solve?
<!--
You need to clearly describe your PR in this part:

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 this function was added.
4. Which codes were refactored and why this part of the code was
refactored.
5. Which functions were optimized and what is the difference before and
after the optimization.

The description of the PR needs to enable reviewers to quickly and
clearly understand the logic of the code modification.
-->

<!--
If there are related issues, please fill in the issue number.
- If you want the issue to be closed after the PR is merged, please use
"close apache#12345". Otherwise, use "ref apache#12345"
-->
Introduced by apache#42882

<!--
If this PR is followup a preivous PR, for example, fix the bug that
introduced by a related PR,
link the PR here
-->
Related PR: apache#42882

Problem Summary:

### Check List (For Committer)

- Test <!-- At least one of them must be included. -->

    - [ ] Regression test
    - [ ] Unit Test
    - [x] 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 colde files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

#### TEST
- Upgrade the BE first, then use build index, and it will core dump.
- Manual testing shows that it doesn't core dump after the upgrade.
1. Execute ADD INDEX
2. Upgrade BE
3. Execute BUILD INDEX

- 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 -->

- Release note

    <!-- bugfix, feat, behavior changed need a release note -->
    <!-- Add one line release note for this PR. -->
    None

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

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
airborne12 pushed a commit that referenced this pull request Nov 7, 2024
…43336)

### What problem does this PR solve?

This PR is a followup repair on the basis of #42882.
Building index on renamed column will produce an empty index file, when
`column_idx` is not found.
The query is successful because match without inverted index.
Move test_match_without_index to fault_injection folder and make it
non-concurrent to avoid concurrency issues.
github-actions bot pushed a commit that referenced this pull request Nov 7, 2024
…43336)

### What problem does this PR solve?

This PR is a followup repair on the basis of #42882.
Building index on renamed column will produce an empty index file, when
`column_idx` is not found.
The query is successful because match without inverted index.
Move test_match_without_index to fault_injection folder and make it
non-concurrent to avoid concurrency issues.
qidaye added a commit to qidaye/incubator-doris that referenced this pull request Nov 7, 2024
)

Add `column_unique_ids` in `TOlapTableIndex` thrift struct, to get
col_unique_id when building index.
qidaye pushed a commit to qidaye/incubator-doris that referenced this pull request Nov 7, 2024
### What problem does this PR solve?
<!--
You need to clearly describe your PR in this part:

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 this function was added.
4. Which codes were refactored and why this part of the code was
refactored.
5. Which functions were optimized and what is the difference before and
after the optimization.

The description of the PR needs to enable reviewers to quickly and
clearly understand the logic of the code modification.
-->

<!--
If there are related issues, please fill in the issue number.
- If you want the issue to be closed after the PR is merged, please use
"close apache#12345". Otherwise, use "ref apache#12345"
-->
Introduced by apache#42882

<!--
If this PR is followup a preivous PR, for example, fix the bug that
introduced by a related PR,
link the PR here
-->
Related PR: apache#42882

Problem Summary:

### Check List (For Committer)

- Test <!-- At least one of them must be included. -->

    - [ ] Regression test
    - [ ] Unit Test
    - [x] 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 colde files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

#### TEST
- Upgrade the BE first, then use build index, and it will core dump.
- Manual testing shows that it doesn't core dump after the upgrade.
1. Execute ADD INDEX
2. Upgrade BE
3. Execute BUILD INDEX

- 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 -->

- Release note

    <!-- bugfix, feat, behavior changed need a release note -->
    <!-- Add one line release note for this PR. -->
    None

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

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
qidaye added a commit to qidaye/incubator-doris that referenced this pull request Nov 7, 2024
…pache#43336)

### What problem does this PR solve?

This PR is a followup repair on the basis of apache#42882.
Building index on renamed column will produce an empty index file, when
`column_idx` is not found.
The query is successful because match without inverted index.
Move test_match_without_index to fault_injection folder and make it
non-concurrent to avoid concurrency issues.
qidaye added a commit that referenced this pull request Nov 7, 2024
…43246)(#43336) (#43266)

bp #42882 #43246 #43336
We pick these PRs together because they all fix one problem and if not
do so, the regression test won't be passed.

---------

Co-authored-by: Sun Chenyang <csun5285@gmail.com>
Co-authored-by: qidaye <luen@selectdb.com>
dataroaring pushed a commit that referenced this pull request Mar 20, 2025
)

Issue Number: close #48989

Related PR: #46648 #42882

Problem Summary:

We introduced `Index.columnUniqueIds` in 3.0.3, and make sure
`Index.columnUniqueIds` is not empty in 3.0.4.
But when we upgrade Doris from 3.0.2 and before to 3.0.4, the
`Index.columnUniqueIds` will be `null`.

Versions 302 and earlier do not have this variable, and gson
deserialization will assign it to null.
We need to initialize the column unique ids associated with the index
correctly.

Key Changes

Removed stored `columnUniqueIds` from `Index` class:

Previously, column unique IDs were stored as a field in the `Index`
class
Now they're dynamically computed when needed rather than stored
redundantly
Added dynamic computation method:

New method `getColumnUniqueIds(List<Column> schema)` computes IDs at
runtime
Column IDs are looked up by matching index column names with schema
columns

Updated method signatures:

Changed `toThrift()` to `toThrift(List<Integer> indexColumnUniqueIds)`
Changed `toPb()` to `toPb(Map<Integer, Column> columnMap, List<Integer>
indexColumnUniqueIds)`
Updated all callers to pass column IDs as parameters
qidaye pushed a commit to qidaye/incubator-doris that referenced this pull request Mar 20, 2025
…che#48988)

Issue Number: close apache#48989

Related PR: apache#46648 apache#42882

Problem Summary:

We introduced `Index.columnUniqueIds` in 3.0.3, and make sure
`Index.columnUniqueIds` is not empty in 3.0.4.
But when we upgrade Doris from 3.0.2 and before to 3.0.4, the
`Index.columnUniqueIds` will be `null`.

Versions 302 and earlier do not have this variable, and gson
deserialization will assign it to null.
We need to initialize the column unique ids associated with the index
correctly.

Key Changes

Removed stored `columnUniqueIds` from `Index` class:

Previously, column unique IDs were stored as a field in the `Index`
class
Now they're dynamically computed when needed rather than stored
redundantly
Added dynamic computation method:

New method `getColumnUniqueIds(List<Column> schema)` computes IDs at
runtime
Column IDs are looked up by matching index column names with schema
columns

Updated method signatures:

Changed `toThrift()` to `toThrift(List<Integer> indexColumnUniqueIds)`
Changed `toPb()` to `toPb(Map<Integer, Column> columnMap, List<Integer>
indexColumnUniqueIds)`
Updated all callers to pass column IDs as parameters
qidaye pushed a commit to qidaye/incubator-doris that referenced this pull request Mar 20, 2025
…che#48988)

Issue Number: close apache#48989

Related PR: apache#46648 apache#42882

Problem Summary:

We introduced `Index.columnUniqueIds` in 3.0.3, and make sure
`Index.columnUniqueIds` is not empty in 3.0.4.
But when we upgrade Doris from 3.0.2 and before to 3.0.4, the
`Index.columnUniqueIds` will be `null`.

Versions 302 and earlier do not have this variable, and gson
deserialization will assign it to null.
We need to initialize the column unique ids associated with the index
correctly.

Key Changes

Removed stored `columnUniqueIds` from `Index` class:

Previously, column unique IDs were stored as a field in the `Index`
class
Now they're dynamically computed when needed rather than stored
redundantly
Added dynamic computation method:

New method `getColumnUniqueIds(List<Column> schema)` computes IDs at
runtime
Column IDs are looked up by matching index column names with schema
columns

Updated method signatures:

Changed `toThrift()` to `toThrift(List<Integer> indexColumnUniqueIds)`
Changed `toPb()` to `toPb(Map<Integer, Column> columnMap, List<Integer>
indexColumnUniqueIds)`
Updated all callers to pass column IDs as parameters
qidaye pushed a commit to qidaye/incubator-doris that referenced this pull request Mar 20, 2025
…che#48988)

Issue Number: close apache#48989

Related PR: apache#46648 apache#42882

Problem Summary:

We introduced `Index.columnUniqueIds` in 3.0.3, and make sure
`Index.columnUniqueIds` is not empty in 3.0.4.
But when we upgrade Doris from 3.0.2 and before to 3.0.4, the
`Index.columnUniqueIds` will be `null`.

Versions 302 and earlier do not have this variable, and gson
deserialization will assign it to null.
We need to initialize the column unique ids associated with the index
correctly.

Key Changes

Removed stored `columnUniqueIds` from `Index` class:

Previously, column unique IDs were stored as a field in the `Index`
class
Now they're dynamically computed when needed rather than stored
redundantly
Added dynamic computation method:

New method `getColumnUniqueIds(List<Column> schema)` computes IDs at
runtime
Column IDs are looked up by matching index column names with schema
columns

Updated method signatures:

Changed `toThrift()` to `toThrift(List<Integer> indexColumnUniqueIds)`
Changed `toPb()` to `toPb(Map<Integer, Column> columnMap, List<Integer>
indexColumnUniqueIds)`
Updated all callers to pass column IDs as parameters
qidaye pushed a commit to qidaye/incubator-doris that referenced this pull request Mar 20, 2025
…che#48988)

Issue Number: close apache#48989

Related PR: apache#46648 apache#42882

Problem Summary:

We introduced `Index.columnUniqueIds` in 3.0.3, and make sure
`Index.columnUniqueIds` is not empty in 3.0.4.
But when we upgrade Doris from 3.0.2 and before to 3.0.4, the
`Index.columnUniqueIds` will be `null`.

Versions 302 and earlier do not have this variable, and gson
deserialization will assign it to null.
We need to initialize the column unique ids associated with the index
correctly.

Key Changes

Removed stored `columnUniqueIds` from `Index` class:

Previously, column unique IDs were stored as a field in the `Index`
class
Now they're dynamically computed when needed rather than stored
redundantly
Added dynamic computation method:

New method `getColumnUniqueIds(List<Column> schema)` computes IDs at
runtime
Column IDs are looked up by matching index column names with schema
columns

Updated method signatures:

Changed `toThrift()` to `toThrift(List<Integer> indexColumnUniqueIds)`
Changed `toPb()` to `toPb(Map<Integer, Column> columnMap, List<Integer>
indexColumnUniqueIds)`
Updated all callers to pass column IDs as parameters
koarz pushed a commit to koarz/doris that referenced this pull request Jun 4, 2025
…che#48988)

Issue Number: close apache#48989

Related PR: apache#46648 apache#42882

Problem Summary:

We introduced `Index.columnUniqueIds` in 3.0.3, and make sure
`Index.columnUniqueIds` is not empty in 3.0.4.
But when we upgrade Doris from 3.0.2 and before to 3.0.4, the
`Index.columnUniqueIds` will be `null`.

Versions 302 and earlier do not have this variable, and gson
deserialization will assign it to null.
We need to initialize the column unique ids associated with the index
correctly.

Key Changes

Removed stored `columnUniqueIds` from `Index` class:

Previously, column unique IDs were stored as a field in the `Index`
class
Now they're dynamically computed when needed rather than stored
redundantly
Added dynamic computation method:

New method `getColumnUniqueIds(List<Column> schema)` computes IDs at
runtime
Column IDs are looked up by matching index column names with schema
columns

Updated method signatures:

Changed `toThrift()` to `toThrift(List<Integer> indexColumnUniqueIds)`
Changed `toPb()` to `toPb(Map<Integer, Column> columnMap, List<Integer>
indexColumnUniqueIds)`
Updated all callers to pass column IDs as parameters
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.8-merged dev/3.0.3-merged reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants