-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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) Fix __DORIS_SEQUENCE_COL__
is not set for newly inserted rows in partial update
#40272
[Fix](partial update) Fix __DORIS_SEQUENCE_COL__
is not set for newly inserted rows in partial update
#40272
Conversation
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
5c95c0b
to
4d42e7a
Compare
run buildall |
4d42e7a
to
e68de4d
Compare
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
clang-tidy review says "All clean, LGTM! 👍" |
e68de4d
to
bc37aa8
Compare
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
clang-tidy review says "All clean, LGTM! 👍" |
TPC-H: Total hot run time: 38332 ms
|
TPC-DS: Total hot run time: 192200 ms
|
ClickBench: Total hot run time: 32.06 s
|
bc37aa8
to
2ca8923
Compare
clang-tidy review says "All clean, LGTM! 👍" |
run buildall |
TPC-H: Total hot run time: 37998 ms
|
TPC-DS: Total hot run time: 192237 ms
|
ClickBench: Total hot run time: 33.21 s
|
clang-tidy review says "All clean, LGTM! 👍" |
run buildall |
TPC-H: Total hot run time: 38168 ms
|
TPC-DS: Total hot run time: 187520 ms
|
ClickBench: Total hot run time: 31.67 s
|
a091bc7
to
afa077a
Compare
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
TPC-H: Total hot run time: 38326 ms
|
80ca2a8
to
a0bada5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
PR approved by at least one committer and no changes requested. |
run buildall |
TPC-H: Total hot run time: 41884 ms
|
TPC-DS: Total hot run time: 193940 ms
|
ClickBench: Total hot run time: 32.07 s
|
TeamCity be ut coverage result: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…ly inserted rows in partial update (#40272) ## Proposed changes ### 1. Fix `__DORIS_SEQUENCE_COL__` is not set for newly inserted rows in partial update before: ```sql MySQL [email protected]:d1> CREATE TABLE IF NOT EXISTS t3 ( -> `k` BIGINT NOT NULL, -> `c1` int, -> `c2` datetime default current_timestamp, -> ) UNIQUE KEY(`k`) -> DISTRIBUTED BY HASH(`k`) BUCKETS 1 -> PROPERTIES ( -> "replication_allocation" = "tag.location.default: 1", -> "enable_unique_key_merge_on_write" = "true", -> "function_column.sequence_col" = "c2" -> ); Query OK, 0 rows affected MySQL [email protected]:d1> set enable_insert_strict=false; MySQL [email protected]:d1> set enable_unique_key_partial_update=true; MySQL [email protected]:d1> insert into t3(k,c1) values(99,99); MySQL [email protected]:d1> set show_hidden_columns=true; MySQL [email protected]:d1> select * from t3; +----+----+---------------------+-----------------------+-----------------------+------------------------+ | k | c1 | c2 | __DORIS_DELETE_SIGN__ | __DORIS_VERSION_COL__ | __DORIS_SEQUENCE_COL__ | +----+----+---------------------+-----------------------+-----------------------+------------------------+ | 99 | 99 | 2024-09-02 11:03:09 | 0 | 2 | <null> | +----+----+---------------------+-----------------------+-----------------------+------------------------+ ``` after: ```sql MySQL [email protected]:d1> CREATE TABLE IF NOT EXISTS t3 ( -> `k` BIGINT NOT NULL, -> `c1` int, -> `c2` datetime default current_timestamp, -> ) UNIQUE KEY(`k`) -> DISTRIBUTED BY HASH(`k`) BUCKETS 1 -> PROPERTIES ( -> "replication_allocation" = "tag.location.default: 1", -> "enable_unique_key_merge_on_write" = "true", -> "function_column.sequence_col" = "c2" -> ); Query OK, 0 rows affected MySQL [email protected]:d1> set enable_insert_strict=false; MySQL [email protected]:d1> set enable_unique_key_partial_update=true; MySQL [email protected]:d1> insert into t3(k,c1) values(1,10); MySQL [email protected]:d1> set show_hidden_columns=true; MySQL [email protected]:d1> select * from t3; +---+----+---------------------+-----------------------+-----------------------+------------------------+ | k | c1 | c2 | __DORIS_DELETE_SIGN__ | __DORIS_VERSION_COL__ | __DORIS_SEQUENCE_COL__ | +---+----+---------------------+-----------------------+-----------------------+------------------------+ | 1 | 10 | 2024-09-02 16:49:50 | 0 | 2 | 2024-09-02 16:49:50 | +---+----+---------------------+-----------------------+-----------------------+------------------------+ ``` ### 2. Fix `current_timestamp()` precision loss for newly inserted rows in partial update before: ```sql MySQL [email protected]:d1> CREATE TABLE IF NOT EXISTS t3 ( -> `k` BIGINT NOT NULL, -> `c1` int, -> `c2` datetime(6) default current_timestamp(6), -> ) UNIQUE KEY(`k`) -> DISTRIBUTED BY HASH(`k`) BUCKETS 1 -> PROPERTIES ( -> "replication_allocation" = "tag.location.default: 1", -> "enable_unique_key_merge_on_write" = "true", -> "function_column.sequence_col" = "c2" -> ); Query OK, 0 rows affected MySQL [email protected]:d1> set enable_unique_key_partial_update=true; MySQL [email protected]:d1> set enable_insert_strict=false; MySQL [email protected]:d1> insert into t3(k,c1) values(3,10); MySQL [email protected]:d1> set show_hidden_columns=true; MySQL [email protected]:d1> select * from t3; +---+----+----------------------------+-----------------------+-----------------------+----------------------------+ | k | c1 | c2 | __DORIS_DELETE_SIGN__ | __DORIS_VERSION_COL__ | __DORIS_SEQUENCE_COL__ | +---+----+----------------------------+-----------------------+-----------------------+----------------------------+ | 3 | 10 | 2024-09-02 19:04:55 | 0 | 2 | <null> | +---+----+----------------------------+-----------------------+-----------------------+----------------------------+ ``` after: ```sql MySQL [email protected]:d1> CREATE TABLE IF NOT EXISTS t3 ( -> `k` BIGINT NOT NULL, -> `c1` int, -> `c2` datetime(6) default current_timestamp(6), -> ) UNIQUE KEY(`k`) -> DISTRIBUTED BY HASH(`k`) BUCKETS 1 -> PROPERTIES ( -> "replication_allocation" = "tag.location.default: 1", -> "enable_unique_key_merge_on_write" = "true", -> "function_column.sequence_col" = "c2" -> ); Query OK, 0 rows affected MySQL [email protected]:d1> set enable_unique_key_partial_update=true; MySQL [email protected]:d1> set enable_insert_strict=false; MySQL [email protected]:d1> insert into t3(k,c1) values(3,10); MySQL [email protected]:d1> set show_hidden_columns=true; MySQL [email protected]:d1> select * from t3; +---+----+----------------------------+-----------------------+-----------------------+----------------------------+ | k | c1 | c2 | __DORIS_DELETE_SIGN__ | __DORIS_VERSION_COL__ | __DORIS_SEQUENCE_COL__ | +---+----+----------------------------+-----------------------+-----------------------+----------------------------+ | 3 | 10 | 2024-09-02 19:04:55.464438 | 0 | 2 | 2024-09-02 19:04:55.464438 | +---+----+----------------------------+-----------------------+-----------------------+----------------------------+ ```
Proposed changes
1. Fix
__DORIS_SEQUENCE_COL__
is not set for newly inserted rows in partial updatebefore:
after:
2. Fix
current_timestamp()
precision loss for newly inserted rows in partial updatebefore:
after:
branch-2.1-pick: #40964
branch-2.0-pick: #40966