summaryrefslogtreecommitdiff
path: root/unittest/json_lib
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-22224: Support JSON Path negative indexRucha Deodhar2022-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch can be viewed as combination of two parts: 1) Enabling '-' in the path so that the parser does not give out a warning. 2) Setting the negative index to a correct value and returning the appropriate value. 1) To enable using the negative index in the path: To make the parser not return warning when negative index is used in path '-' needs to be allowed in json path characters. P_NEG is added to enable this and is made recognizable by setting the 45th index of json_path_chr_map[] to P_NEG (instead of previous P_ETC) because 45 corresponds to '-' in unicode. When the path is being parsed and '-' is encountered, the parser should recognize it as parsing '-' sign, so a new json state PS_NEG is required. When the state is PS_NEG, it means that a negative integer is going to be parsed so set is_negative_index of current step to 1 and n_item is set accordingly when integer is encountered after '-'. Next proceed with parsing rest of the path and get the correct path. Next thing is parsing the json and returning correct value. 2) Setting the negative index to a correct value and returning the value: While parsing json if we encounter array and the path step for the array is a negative index (n_item < 0), then we can count the number of elements in the array and set n_item to correct corresponding value. This is done in json_skip_array_and_count.
* Add json_normalize function to json_libEric Herman2021-07-212-1/+281
| | | | | | | | | | | This patch implements a library for normalizing json documents. The algorithm is: * Recursively sort json keys according to utf8mb4_bin collation. * Normalize numbers to be of the form [-]<digit>.<frac>E<exponent> * All unneeded whitespace and line endings are removed. * Arrays are not sorted. Co-authored-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
* MDEV-19897 Rename source code variable names from utf8 to utf8mb3Alexander Barkov2019-06-281-1/+1
|
* MDEV-18531 : Use WolfSSL instead of YaSSL as "bundled" SSL/encryption libraryVladislav Vaintroub2019-05-221-1/+0
| | | | | | | | - Add new submodule for WolfSSL - Build and use wolfssl and wolfcrypt instead of yassl/taocrypt - Use HAVE_WOLFSSL instead of HAVE_YASSL - Increase MY_AES_CTX_SIZE, to avoid compile time asserts in my_crypt.cc (sizeof(EVP_CIPHER_CTX) is larger on WolfSSL)
* Merge 10.1 into 10.2Marko Mäkelä2019-05-131-1/+1
|
* MDEV-11469 JSON_SEARCH returns incorrect results.Alexey Botchkov2016-12-091-4/+4
| | | | Support for '**' in json path expressions added.
* MDEV-9143 JSON_xxx functions.Alexey Botchkov2016-10-192-0/+209
strings/json_lib.c added as a JSON library. SQL frunction added with sql/item_jsonfunc.h/cc