mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-25822 JSON_TABLE: default values should allow non-string literals
(Polished initial patch by Alexey Botchkov) Make the code handle DEFAULT values of any datatype - Make Json_table_column::On_response::m_default be Item*, not LEX_STRING. - Change the parser to use string literal non-terminals for producing the DEFAULT value -- Also, stop updating json_table->m_text_literal_cs for the DEFAULT value literals as it is not used.
This commit is contained in:
@@ -445,11 +445,8 @@ SELECT * FROM JSON_TABLE('"asdf"', '$' COLUMNS(
|
||||
f FLOAT PATH '$',
|
||||
d DECIMAL PATH '$')) AS jt;
|
||||
|
||||
# DEFAULT NULL is not accepted syntax.
|
||||
--error ER_PARSE_ERROR
|
||||
SELECT * FROM
|
||||
JSON_TABLE('{}', '$' COLUMNS (x INT PATH '$.x' DEFAULT NULL ON EMPTY)) jt;
|
||||
--error ER_PARSE_ERROR
|
||||
SELECT * FROM
|
||||
JSON_TABLE('{}', '$' COLUMNS (x INT PATH '$.x' DEFAULT NULL ON ERROR)) jt;
|
||||
|
||||
@@ -457,13 +454,10 @@ SELECT * FROM
|
||||
JSON_TABLE('{}', '$' COLUMNS (x INT PATH '$.x' DEFAULT 0 ON EMPTY)) jt;
|
||||
SELECT * FROM
|
||||
JSON_TABLE('{}', '$' COLUMNS (x INT PATH '$.x' DEFAULT 0 ON ERROR)) jt;
|
||||
# We don't accept dates in DEFAULT
|
||||
--error 1064
|
||||
SELECT * FROM
|
||||
JSON_TABLE('{}', '$' COLUMNS (x DATE
|
||||
PATH '$.x'
|
||||
DEFAULT DATE'2020-01-01' ON EMPTY)) jt;
|
||||
--error 1064
|
||||
SELECT * FROM
|
||||
JSON_TABLE('{}', '$' COLUMNS (x DATE
|
||||
PATH '$.x'
|
||||
|
Reference in New Issue
Block a user