12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /* syntax version 1 */
- $path = Json2::CompilePath("strict $.x");
- $array = CAST("[]" as Json);
- $object = CAST("{}" as Json);
- -- Valid cases
- $nested_object = CAST(@@{"x": {"y": 123}}@@ as Json);
- $nested_array = CAST(@@{"x": [123, 456]}@@ as Json);
- SELECT
- Json2::SqlQuery($nested_object, $path, AsDict(), false, $array, false, $object),
- Json2::SqlQuery($nested_array, $path, AsDict(), false, $array, false, $object);
- -- Null handling
- SELECT
- Json2::SqlQuery(NULL, $path, AsDict(), false, $array, false, $object);
- -- Errors
- $jsonpath_error = CAST(@@{"y": []}@@ as Json);
- SELECT
- Json2::SqlQuery($jsonpath_error, $path, AsDict(), false, $array, false, NULL),
- Json2::SqlQuery($jsonpath_error, $path, AsDict(), false, $array, false, $object),
- Json2::SqlQuery($jsonpath_error, $path, AsDict(), false, $object, false, $array);
- $mismatch_error = CAST(@@{"x": 123}@@ as Json);
- SELECT
- Json2::SqlQuery($mismatch_error, $path, AsDict(), false, $array, false, NULL),
- Json2::SqlQuery($mismatch_error, $path, AsDict(), false, $array, false, $object),
- Json2::SqlQuery($mismatch_error, $path, AsDict(), false, $object, false, $array);
- -- Wrap
- $nested_value = CAST(@@{"x": 123}@@ as Json);
- SELECT
- Json2::SqlQueryWrap($nested_value, $path, AsDict(), false, $object, false, $array),
- Json2::SqlQueryConditionalWrap($nested_value, $path, AsDict(), false, $object, false, $array);
- SELECT
- Json2::SqlQuery($nested_object, $path, AsDict(), false, $object, false, $array),
- Json2::SqlQueryWrap($nested_object, $path, AsDict(), false, $object, false, $array),
- Json2::SqlQueryConditionalWrap($nested_object, $path, AsDict(), false, $object, false, $array);
- SELECT
- Json2::SqlQuery($nested_array, $path, AsDict(), false, $object, false, $array),
- Json2::SqlQueryWrap($nested_array, $path, AsDict(), false, $object, false, $array),
- Json2::SqlQueryConditionalWrap($nested_array, $path, AsDict(), false, $object, false, $array);
- -- Wrap empty result
- $path_lax = Json2::CompilePath("lax $.x");
- SELECT
- Json2::SqlQuery($object, $path_lax, AsDict(), false, $object, false, $object),
- Json2::SqlQueryWrap($object, $path_lax, AsDict(), false, $object, false, $object),
- Json2::SqlQueryConditionalWrap($object, $path_lax, AsDict(), false, $object, false, $object);
|