Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.5(EOL), 10.0(EOL), 10.1(EOL)
-
Arch Linux
Linux kernel 4.4.23-1-lts
Lenovo ThinkPad E540
Description
I try to use User Defined Function lib_mysqludf_json from https://github.com/mysqludf/lib_mysqludf_json with MariaDB 10.1.18 and found an incorrect behavior of UDF_ARGS attribute_lengths.
typedef struct st_udf_args
|
{
|
...
|
unsigned long *attribute_lengths; /* Length of attribute arguments */
|
...
|
} UDF_ARGS;
|
Example:
When you use SELECT json_object("citizen_id") FROM ...
you will have:
args->attributes[0] = "citizen_id"
|
args->attribute_lengths[0] = 12
|
That's correct.
When you use SELECT json_object(citizen_id AS citizen_id) FROM ...
args->attributes[0] = citizen_id
|
args->attribute_lengths[0] = 10
|
That's also correct.
But when you use SELECT json_object(citizen_id) FROM ...
args->attributes[0] = citizen_id
|
args->attribute_lengths[0] = 0
|
That's incorrect. Correct value of attribute_lengths[0] is 10.
That's not reproducable on MySQL. This is not lib_mysqludf_json incorrect behavior, it just uses standart struct UDF_ARGS.