Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL), 10.5
-
None
Description
PERCENTILE_DISC() now return an error on temporal and string input:
CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); |
INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); |
INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); |
INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); |
INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); |
INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); |
SELECT name, PERCENTILE_DISC(0.5) |
WITHIN GROUP (ORDER BY star_rating) |
OVER (PARTITION BY name) AS pc FROM t1; |
ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function
|
It should be extended to support all string and temporal data types.
Note, PERCENTILE_DISC() previously crashed on temporal input. The patch for MDEV-20272 fixed the crash and made it return an error instead. Allowing temporal and string types in PERCENTILE_DISC() needs some refactoring, which was not desirable in 10.3.
Refactoring needed:
Item_sum_percentile_disc currently recursively derives from Item_sum_num, which cannot return string/temporal values by design.
In order to support string/temporal data types in PERCENTILE_DISC(), Item_sum_percentile_disc should be moved to the Item_sum_hybrid
branch in the hierarchy.
It's not desirable to do such refactoring in 10.3 or 10.4.
Attachments
Issue Links
- causes
-
MDEV-30292 Server crashes in Static_binary_string::length / save_window_function_values
-
- Confirmed
-
- relates to
-
MDEV-20272 PERCENTILE_DISC() crashes on a temporal type input
-
- Closed
-
-
MDEV-21392 Cleanup redundant overriding in Item_sum_num
-
- Closed
-
-
MDEV-22764 Crash with a stored aggregate function returning INET6
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
Description |
PERCENTILE_DISC() now return an error on temporal and string input:
{code:sql} CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); SELECT name, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM t1; {code} {noformat} ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function {noformat} It should be extended to support all string and temporal data types. |
PERCENTILE_DISC() now return an error on temporal and string input:
{code:sql} CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); SELECT name, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM t1; {code} {noformat} ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function {noformat} It should be extended to support all string and temporal data types. Note, PERCENTILE_DISC() crashed on temporal input. The patch for Refactoring needed: Item_sum_percentile_disc currently recursively derives from Item_sum_num, which cannot return string/temporal values by design. In order to support string/temporal data types in PERCENTILE_DISC(), Item_sum_percentile_disc should be moved to the Item_sum_hybrid branch in the hierarchy. |
Description |
PERCENTILE_DISC() now return an error on temporal and string input:
{code:sql} CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); SELECT name, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM t1; {code} {noformat} ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function {noformat} It should be extended to support all string and temporal data types. Note, PERCENTILE_DISC() crashed on temporal input. The patch for Refactoring needed: Item_sum_percentile_disc currently recursively derives from Item_sum_num, which cannot return string/temporal values by design. In order to support string/temporal data types in PERCENTILE_DISC(), Item_sum_percentile_disc should be moved to the Item_sum_hybrid branch in the hierarchy. |
PERCENTILE_DISC() now return an error on temporal and string input:
{code:sql} CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); SELECT name, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM t1; {code} {noformat} ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function {noformat} It should be extended to support all string and temporal data types. Note, PERCENTILE_DISC() previously crashed on temporal input. The patch for Refactoring needed: Item_sum_percentile_disc currently recursively derives from Item_sum_num, which cannot return string/temporal values by design. In order to support string/temporal data types in PERCENTILE_DISC(), Item_sum_percentile_disc should be moved to the Item_sum_hybrid branch in the hierarchy. |
Fix Version/s | 10.5 [ 23123 ] |
Description |
PERCENTILE_DISC() now return an error on temporal and string input:
{code:sql} CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); SELECT name, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM t1; {code} {noformat} ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function {noformat} It should be extended to support all string and temporal data types. Note, PERCENTILE_DISC() previously crashed on temporal input. The patch for Refactoring needed: Item_sum_percentile_disc currently recursively derives from Item_sum_num, which cannot return string/temporal values by design. In order to support string/temporal data types in PERCENTILE_DISC(), Item_sum_percentile_disc should be moved to the Item_sum_hybrid branch in the hierarchy. |
PERCENTILE_DISC() now return an error on temporal and string input:
{code:sql} CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:05'); INSERT INTO t1 VALUES ('Lord of the Ladybirds', '00:00:03'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:01'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:02'); INSERT INTO t1 VALUES ('Lady of the Flies', '00:00:05'); SELECT name, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY star_rating) OVER (PARTITION BY name) AS pc FROM t1; {code} {noformat} ERROR 4101 (HY000): Numeric datatype is required for percentile_disc function {noformat} It should be extended to support all string and temporal data types. Note, PERCENTILE_DISC() previously crashed on temporal input. The patch for Refactoring needed: Item_sum_percentile_disc currently recursively derives from Item_sum_num, which cannot return string/temporal values by design. In order to support string/temporal data types in PERCENTILE_DISC(), Item_sum_percentile_disc should be moved to the Item_sum_hybrid branch in the hierarchy. It's not desirable to do such refactoring in 10.3 or 10.4. |
Link |
This issue relates to |
Link |
This issue relates to |
Fix Version/s | 10.5.4 [ 24264 ] | |
Fix Version/s | 10.5 [ 23123 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 98777 ] | MariaDB v4 [ 156585 ] |
Link | This issue causes MDEV-30292 [ MDEV-30292 ] |