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

[Fix](partial update) Handle delete predicate in partial Update #35766

Conversation

Yukang-Lian
Copy link
Collaborator

Proposed changes

Issue Number: close #xxx

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

Copy link
Contributor

github-actions bot commented Jun 1, 2024

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

Copy link
Contributor

@dataroaring dataroaring left a comment

Choose a reason for hiding this comment

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

Please add a regression case.

Copy link
Contributor

github-actions bot commented Jun 3, 2024

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

@Yukang-Lian
Copy link
Collaborator Author

run buildall

Copy link
Contributor

github-actions bot commented Jun 3, 2024

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

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 36.24% (9242/25500)
Line Coverage: 27.58% (75886/275166)
Region Coverage: 26.83% (39315/146559)
Branch Coverage: 23.56% (19923/84560)
Coverage Report: http://coverage.selectdb-in.cc/coverage/b67e7774a43ecd8416b728c5d348ca0ce808e0b5_b67e7774a43ecd8416b728c5d348ca0ce808e0b5/report/index.html

@Yukang-Lian Yukang-Lian closed this Jun 5, 2024
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 15, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 17, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 18, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 19, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 19, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 20, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 24, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jun 26, 2024
Problem: As shown in the issue above, if a key deleted by a delete statement is written to by updating only certain columns, the data will not display correctly.

Reason: The delete statement deletes the data by writing a delete predicate, which is stored in the rowset meta and applied during data retrieval to filter the data. However, partial column updates do not consider the effect of the delete predicate when reading the original data. The imported key should be considered as a new key (since it has already been deleted), but it is actually treated as an old key. Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates, but this method will result in reading more columns, as shown in apache#35766. Thus, in this PR, we change the delete operation in the mow table from writing a delete predicate to writing a delete sign, which effectively resolves the issue.
zhannngchen pushed a commit that referenced this pull request Jun 26, 2024
…table (#35917)

## Proposed changes

close #34551 

Problem: As shown in the issue above, if a key deleted by a delete
statement is written to by updating only certain columns, the data will
not display correctly.

Reason: The delete statement deletes the data by writing a delete
predicate, which is stored in the rowset meta and applied during data
retrieval to filter the data. However, partial column updates do not
consider the effect of the delete predicate when reading the original
data. The imported key should be considered as a new key (since it has
already been deleted), but it is actually treated as an old key.
Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates,
but this method will result in reading more columns, as shown in #35766.
Thus, in this PR, we change the delete operation in the mow table from
writing a delete predicate to writing a delete sign, which effectively
resolves the issue.
dataroaring pushed a commit that referenced this pull request Jun 28, 2024
…table (#35917)

## Proposed changes

close #34551 

Problem: As shown in the issue above, if a key deleted by a delete
statement is written to by updating only certain columns, the data will
not display correctly.

Reason: The delete statement deletes the data by writing a delete
predicate, which is stored in the rowset meta and applied during data
retrieval to filter the data. However, partial column updates do not
consider the effect of the delete predicate when reading the original
data. The imported key should be considered as a new key (since it has
already been deleted), but it is actually treated as an old key.
Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates,
but this method will result in reading more columns, as shown in #35766.
Thus, in this PR, we change the delete operation in the mow table from
writing a delete predicate to writing a delete sign, which effectively
resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jul 10, 2024
…table (apache#35917)

close apache#34551

Problem: As shown in the issue above, if a key deleted by a delete
statement is written to by updating only certain columns, the data will
not display correctly.

Reason: The delete statement deletes the data by writing a delete
predicate, which is stored in the rowset meta and applied during data
retrieval to filter the data. However, partial column updates do not
consider the effect of the delete predicate when reading the original
data. The imported key should be considered as a new key (since it has
already been deleted), but it is actually treated as an old key.
Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates,
but this method will result in reading more columns, as shown in apache#35766.
Thus, in this PR, we change the delete operation in the mow table from
writing a delete predicate to writing a delete sign, which effectively
resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jul 15, 2024
…table (apache#35917)

close apache#34551

Problem: As shown in the issue above, if a key deleted by a delete
statement is written to by updating only certain columns, the data will
not display correctly.

Reason: The delete statement deletes the data by writing a delete
predicate, which is stored in the rowset meta and applied during data
retrieval to filter the data. However, partial column updates do not
consider the effect of the delete predicate when reading the original
data. The imported key should be considered as a new key (since it has
already been deleted), but it is actually treated as an old key.
Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates,
but this method will result in reading more columns, as shown in apache#35766.
Thus, in this PR, we change the delete operation in the mow table from
writing a delete predicate to writing a delete sign, which effectively
resolves the issue.
Yukang-Lian added a commit to Yukang-Lian/doris that referenced this pull request Jul 29, 2024
…table (apache#35917)

close apache#34551

Problem: As shown in the issue above, if a key deleted by a delete
statement is written to by updating only certain columns, the data will
not display correctly.

Reason: The delete statement deletes the data by writing a delete
predicate, which is stored in the rowset meta and applied during data
retrieval to filter the data. However, partial column updates do not
consider the effect of the delete predicate when reading the original
data. The imported key should be considered as a new key (since it has
already been deleted), but it is actually treated as an old key.
Therefore, only some columns are updated, leading to incorrect results.

Solution: Consider the delete predicate during partial column updates,
but this method will result in reading more columns, as shown in apache#35766.
Thus, in this PR, we change the delete operation in the mow table from
writing a delete predicate to writing a delete sign, which effectively
resolves the issue.
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.

3 participants