== Short ==
JSON null value should be converted to SQL NULL value, but it is converted to 0
or "null" instead:
== Long ==
select * from
json_table(
'[{"a":"aa"}, {"b":null}]',
'$[*]' columns (
col1 int path '$.b' default '456' on empty
)
) as tt;
MariaDB:
+------+
| col1 |
+------+
| 456 |
| 0 |
+------+
MySQL and OracleDB:
+------+
| col1 |
+------+
| 456 |
| NULL |
+------+
If I change "col1 int" into "col1 varchar(100)", I get a string with "null".
I think this is incorrect and should be fixed.
AFAIU, SQL Standard describes it here: see my previous email, then look at
section 9.40, 4.b.ii:
ii) If I is the SQL/JSON null, then let V be the SQL null value.
BR
Sergei
--
Sergei Petrunia, Software Developer
MariaDB Corporation | Skype: sergefp | Blog: http://petrunia.net
_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~maria-developers
More help : https://help.launchpad.net/ListHelp