@@ -85,6 +85,7 @@ import qualified Generics.SOP as SOP
87-- >>> import Squeal.PostgreSQL
87-- >>> import Squeal.PostgreSQL
88+-- >>> import Data.Aeson
89{-----------------------------------------
90{-----------------------------------------
90 -- json and jsonb support
91 -- json and jsonb support
@@ -379,58 +380,64 @@ jsonbPretty :: null 'PGjsonb :--> null 'PGtext
379jsonbPretty = unsafeFunction "jsonb_pretty"
380jsonbPretty = unsafeFunction "jsonb_pretty"
382−-- | Expands the outermost JSON object into a set of key/value pairs.
383+{- | Expands the outermost JSON object into a set of key/value pairs.
383−-- >>> import Data.Aeson
384+
384−-- >>> printSQL (select Star (from (jsonEach (literal (Json (object ["a" .= "foo", "b" .= "bar"]))))))
385+>>> printSQL (select Star (from (jsonEach (literal (Json (object ["a" .= "foo", "b" .= "bar"]))))))
385−-- SELECT * FROM json_each(('{"a":"foo","b":"bar"}' :: json))
386+SELECT * FROM json_each(('{"a":"foo","b":"bar"}' :: json))
386jsonEach :: SetOfFunction "json_each" (null 'PGjson)
388jsonEach :: SetOfFunction "json_each" (null 'PGjson)
387 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGjson]
389 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGjson]
388−jsonEach = unsafeSetOfFunction #json_each
390+jsonEach = unsafeSetOfFunction
390−-- | Expands the outermost binary JSON object into a set of key/value pairs.
392+{- | Expands the outermost binary JSON object into a set of key/value pairs.
391−-- >>> import Data.Aeson
393+
392−-- >>> printSQL (select Star (from (jsonbEach (literal (Jsonb (object ["a" .= "foo", "b" .= "bar"]))))))
394+>>> printSQL (select Star (from (jsonbEach (literal (Jsonb (object ["a" .= "foo", "b" .= "bar"]))))))
393−-- SELECT * FROM jsonb_each(('{"a":"foo","b":"bar"}' :: jsonb))
395+SELECT * FROM jsonb_each(('{"a":"foo","b":"bar"}' :: jsonb))
395 :: SetOfFunction "jsonb_each" (nullity 'PGjsonb)
398 :: SetOfFunction "jsonb_each" (nullity 'PGjsonb)
396 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGjson]
399 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGjson]
397−jsonbEach = unsafeSetOfFunction #jsonb_each
400+jsonbEach = unsafeSetOfFunction
399−-- | Expands the outermost JSON object into a set of key/value pairs.-- | Expands the outermost binary JSON object into a set of key/value pairs.
402+{- | Expands the outermost JSON object into a set of key/value pairs.
400−-- >>> import Data.Aeson
403+
401−-- >>> printSQL (select Star (from (jsonEachText (literal (Json (object ["a" .= "foo", "b" .= "bar"]))))))
404+>>> printSQL (select Star (from (jsonEachText (literal (Json (object ["a" .= "foo", "b" .= "bar"]))))))
402−-- SELECT * FROM json_each_text(('{"a":"foo","b":"bar"}' :: json))
405+SELECT * FROM json_each_text(('{"a":"foo","b":"bar"}' :: json))
403jsonEachText
407jsonEachText
404 :: SetOfFunction "json_each_text" (null 'PGjson)
408 :: SetOfFunction "json_each_text" (null 'PGjson)
405 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGtext]
409 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGtext]
406−jsonEachText = unsafeSetOfFunction #json_each_text
410+jsonEachText = unsafeSetOfFunction
408−-- | Expands the outermost binary JSON object into a set of key/value pairs.
412+{- | Expands the outermost binary JSON object into a set of key/value pairs.
409−-- >>> import Data.Aeson
413+
410−-- >>> printSQL (select Star (from (jsonbEachText (literal (Jsonb (object ["a" .= "foo", "b" .= "bar"]))))))
414+>>> printSQL (select Star (from (jsonbEachText (literal (Jsonb (object ["a" .= "foo", "b" .= "bar"]))))))
411−-- SELECT * FROM jsonb_each_text(('{"a":"foo","b":"bar"}' :: jsonb))
415+SELECT * FROM jsonb_each_text(('{"a":"foo","b":"bar"}' :: jsonb))
412jsonbEachText
417jsonbEachText
413 :: SetOfFunction "jsonb_each_text" (null 'PGjsonb)
418 :: SetOfFunction "jsonb_each_text" (null 'PGjsonb)
414 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGtext]
419 '["key" ::: 'NotNull 'PGtext, "value" ::: 'NotNull 'PGtext]
415−jsonbEachText = unsafeSetOfFunction #jsonb_each_text
420+jsonbEachText = unsafeSetOfFunction
417−-- | Returns set of keys in the outermost JSON object.
422+{- | Returns set of keys in the outermost JSON object.
418−-- >>> import Data.Aeson
423+
419−-- >>> printSQL (jsonObjectKeys (literal (Json (object ["a" .= "foo", "b" .= "bar"]))))
424+>>> printSQL (jsonObjectKeys (literal (Json (object ["a" .= "foo", "b" .= "bar"]))))
420−-- json_object_keys(('{"a":"foo","b":"bar"}' :: json))
425+json_object_keys(('{"a":"foo","b":"bar"}' :: json))
421jsonObjectKeys
427jsonObjectKeys
422 :: SetOfFunction "json_object_keys" (nullity 'PGjson)
428 :: SetOfFunction "json_object_keys" (nullity 'PGjson)
423 '["json_object_keys" ::: 'NotNull 'PGtext]
429 '["json_object_keys" ::: 'NotNull 'PGtext]
424−jsonObjectKeys = unsafeSetOfFunction #json_object_keys
430+jsonObjectKeys = unsafeSetOfFunction
426−-- | Returns set of keys in the outermost JSON object.
432+{- | Returns set of keys in the outermost JSON object.
427−-- >>> import Data.Aeson
433+
428−-- >>> printSQL (jsonbObjectKeys (literal (Jsonb (object ["a" .= "foo", "b" .= "bar"]))))
434+>>> printSQL (jsonbObjectKeys (literal (Jsonb (object ["a" .= "foo", "b" .= "bar"]))))
429−-- jsonb_object_keys(('{"a":"foo","b":"bar"}' :: jsonb))
435+jsonb_object_keys(('{"a":"foo","b":"bar"}' :: jsonb))
430jsonbObjectKeys
437jsonbObjectKeys
431 :: SetOfFunction "jsonb_object_keys" (null 'PGjsonb)
438 :: SetOfFunction "jsonb_object_keys" (null 'PGjsonb)
432 '["jsonb_object_keys" ::: 'NotNull 'PGtext]
439 '["jsonb_object_keys" ::: 'NotNull 'PGtext]
433−jsonbObjectKeys = unsafeSetOfFunction #jsonb_object_keys
440+jsonbObjectKeys = unsafeSetOfFunction
435unsafePopulateFunction
442unsafePopulateFunction
436 :: forall fun schemas null outer commons params ty row
443 :: forall fun schemas null outer commons params ty row