-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
[enchement](schema change)Standardize the behavior after a table schema change. #47471
Conversation
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
run buildall |
TPC-H: Total hot run time: 32452 ms
|
TPC-DS: Total hot run time: 192144 ms
|
ClickBench: Total hot run time: 30.49 s
|
run buildall |
TPC-H: Total hot run time: 32539 ms
|
TPC-DS: Total hot run time: 192302 ms
|
ClickBench: Total hot run time: 31.05 s
|
TeamCity be ut coverage result: |
0250377
to
337ca4f
Compare
run buildall |
TPC-H: Total hot run time: 31774 ms
|
TPC-DS: Total hot run time: 189473 ms
|
ClickBench: Total hot run time: 30.29 s
|
run buildall |
TPC-H: Total hot run time: 31455 ms
|
TPC-DS: Total hot run time: 188909 ms
|
ClickBench: Total hot run time: 30.04 s
|
52a77d0
to
e7b7af0
Compare
run buildall |
TPC-H: Total hot run time: 31598 ms
|
TPC-DS: Total hot run time: 189625 ms
|
ClickBench: Total hot run time: 30.14 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
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
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
…ma change. (apache#47471) ### What problem does this PR solve? Related PR: apache#32873 Problem Summary: Explicitly defines the behavior of column type conversions. <img width="935" alt="image" src="https://github.com/user-attachments/assets/1e5afcf6-fbcf-4c36-b44e-82843feacb05" /> Special notes are as follows: `String => boolean`: In Parquet, only "false", "off", "no", "0", and an empty string ("") are considered false; otherwise, it is true. In Orc, a string can be parsed as a number, and if that number is 0, it is considered false; otherwise, it is true. If parsing the number fails, it results in null. Conversion between `Int/smallint/tinyint/bigint`: Unless the conversion can be perfectly represented, an error will be reported. For example: Bigint column => smallint column Reason: [INTERNAL_ERROR] Failed to cast value '9223372036854775807' to Nullable(Int16) column. Conversion between `Decimal`: Unless the conversion can be perfectly done, an error will be reported. `String => Int/smallint/tinyint/bigint`: It can be successfully converted to a number, and the number can be correctly stored. Otherwise, the result is null. `Int/smallint/tinyint/bigint => float`: The conversion is successful only if abs(number type) < 2^23. `Int/smallint/tinyint/bigint => double`: The conversion is successful only if abs(number type) < 2^52. `Decimal => Int/smallint/tinyint/bigint`: If the integer part of the decimal can be perfectly stored, only the integer part will be shown; otherwise, it will result in null. `Float => double`: Refer to the C++ static_cast<double>(float). `Decimal => float/double`: Attempt to store the approximate value. `Boolean => string`: The conversion will result in “TRUE” or “FALSE”. TODO: conversion to `char/varchar` type requires truncation.
…ma change. (apache#47471) ### What problem does this PR solve? Related PR: apache#32873 Problem Summary: Explicitly defines the behavior of column type conversions. <img width="935" alt="image" src="https://github.com/user-attachments/assets/1e5afcf6-fbcf-4c36-b44e-82843feacb05" /> Special notes are as follows: `String => boolean`: In Parquet, only "false", "off", "no", "0", and an empty string ("") are considered false; otherwise, it is true. In Orc, a string can be parsed as a number, and if that number is 0, it is considered false; otherwise, it is true. If parsing the number fails, it results in null. Conversion between `Int/smallint/tinyint/bigint`: Unless the conversion can be perfectly represented, an error will be reported. For example: Bigint column => smallint column Reason: [INTERNAL_ERROR] Failed to cast value '9223372036854775807' to Nullable(Int16) column. Conversion between `Decimal`: Unless the conversion can be perfectly done, an error will be reported. `String => Int/smallint/tinyint/bigint`: It can be successfully converted to a number, and the number can be correctly stored. Otherwise, the result is null. `Int/smallint/tinyint/bigint => float`: The conversion is successful only if abs(number type) < 2^23. `Int/smallint/tinyint/bigint => double`: The conversion is successful only if abs(number type) < 2^52. `Decimal => Int/smallint/tinyint/bigint`: If the integer part of the decimal can be perfectly stored, only the integer part will be shown; otherwise, it will result in null. `Float => double`: Refer to the C++ static_cast<double>(float). `Decimal => float/double`: Attempt to store the approximate value. `Boolean => string`: The conversion will result in “TRUE” or “FALSE”. TODO: conversion to `char/varchar` type requires truncation.
What problem does this PR solve?
Related PR: #32873
Problem Summary:
Explicitly defines the behavior of column type conversions.
Special notes are as follows:
String => boolean
: In Parquet, only "false", "off", "no", "0", and an empty string ("") are considered false; otherwise, it is true. In Orc, a string can be parsed as a number, and if that number is 0, it is considered false; otherwise, it is true. If parsing the number fails, it results in null.Conversion between
Int/smallint/tinyint/bigint
:Unless the conversion can be perfectly represented, an error will be reported.
For example:
Bigint column => smallint column
Reason: [INTERNAL_ERROR] Failed to cast value '9223372036854775807' to Nullable(Int16) column.
Conversion between
Decimal
:Unless the conversion can be perfectly done, an error will be reported.
String => Int/smallint/tinyint/bigint
:It can be successfully converted to a number, and the number can be correctly stored. Otherwise, the result is null.
Int/smallint/tinyint/bigint => float
:The conversion is successful only if abs(number type) < 2^23.
Int/smallint/tinyint/bigint => double
:The conversion is successful only if abs(number type) < 2^52.
Decimal => Int/smallint/tinyint/bigint
:If the integer part of the decimal can be perfectly stored, only the integer part will be shown; otherwise, it will result in null.
Float => double
:Refer to the C++ static_cast(float).
Decimal => float/double
:Attempt to store the approximate value.
Boolean => string
:The conversion will result in “TRUE” or “FALSE”.
TODO: conversion to
char/varchar
type requires truncation.Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)