Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-11205

UDF_ARGS "attribute_lengths" incorrect value

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5, 10.0, 10.1
    • Fix Version/s: 5.5.58
    • Component/s: OTHER
    • Labels:
    • Environment:
      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.

        Attachments

          Activity

            People

            • Assignee:
              holyfoot Alexey Botchkov
              Reporter:
              Sirakuzi Alexander Sidorov
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: