SqlQuery.sql 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /* syntax version 1 */
  2. $path = Json2::CompilePath("strict $.x");
  3. $array = CAST("[]" as Json);
  4. $object = CAST("{}" as Json);
  5. -- Valid cases
  6. $nested_object = CAST(@@{"x": {"y": 123}}@@ as Json);
  7. $nested_array = CAST(@@{"x": [123, 456]}@@ as Json);
  8. SELECT
  9. Json2::SqlQuery($nested_object, $path, AsDict(), false, $array, false, $object),
  10. Json2::SqlQuery($nested_array, $path, AsDict(), false, $array, false, $object);
  11. -- Null handling
  12. SELECT
  13. Json2::SqlQuery(NULL, $path, AsDict(), false, $array, false, $object);
  14. -- Errors
  15. $jsonpath_error = CAST(@@{"y": []}@@ as Json);
  16. SELECT
  17. Json2::SqlQuery($jsonpath_error, $path, AsDict(), false, $array, false, NULL),
  18. Json2::SqlQuery($jsonpath_error, $path, AsDict(), false, $array, false, $object),
  19. Json2::SqlQuery($jsonpath_error, $path, AsDict(), false, $object, false, $array);
  20. $mismatch_error = CAST(@@{"x": 123}@@ as Json);
  21. SELECT
  22. Json2::SqlQuery($mismatch_error, $path, AsDict(), false, $array, false, NULL),
  23. Json2::SqlQuery($mismatch_error, $path, AsDict(), false, $array, false, $object),
  24. Json2::SqlQuery($mismatch_error, $path, AsDict(), false, $object, false, $array);
  25. -- Wrap
  26. $nested_value = CAST(@@{"x": 123}@@ as Json);
  27. SELECT
  28. Json2::SqlQueryWrap($nested_value, $path, AsDict(), false, $object, false, $array),
  29. Json2::SqlQueryConditionalWrap($nested_value, $path, AsDict(), false, $object, false, $array);
  30. SELECT
  31. Json2::SqlQuery($nested_object, $path, AsDict(), false, $object, false, $array),
  32. Json2::SqlQueryWrap($nested_object, $path, AsDict(), false, $object, false, $array),
  33. Json2::SqlQueryConditionalWrap($nested_object, $path, AsDict(), false, $object, false, $array);
  34. SELECT
  35. Json2::SqlQuery($nested_array, $path, AsDict(), false, $object, false, $array),
  36. Json2::SqlQueryWrap($nested_array, $path, AsDict(), false, $object, false, $array),
  37. Json2::SqlQueryConditionalWrap($nested_array, $path, AsDict(), false, $object, false, $array);
  38. -- Wrap empty result
  39. $path_lax = Json2::CompilePath("lax $.x");
  40. SELECT
  41. Json2::SqlQuery($object, $path_lax, AsDict(), false, $object, false, $object),
  42. Json2::SqlQueryWrap($object, $path_lax, AsDict(), false, $object, false, $object),
  43. Json2::SqlQueryConditionalWrap($object, $path_lax, AsDict(), false, $object, false, $object);