Coalesce.yql 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. (
  2. #comment
  3. (let mr_source (DataSource 'yt 'plato))
  4. (let x (Read! world mr_source (Key '('table (String 'Input))) '('key 'subkey 'value) '()))
  5. (let world (Left! x))
  6. (let table1 (Right! x))
  7. (let table1map (Map table1 (lambda '(item) (block '(
  8. (let value (Member item 'value))
  9. (let x (Uint32 '1))
  10. (let y (Uint32 '2))
  11. (let z (Uint32 '3))
  12. (let n (Nothing (OptionalType (TypeOf x))))
  13. (let newValue value)
  14. (let newValue (Concat newValue (String '" => ")))
  15. # single arg
  16. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce x)))))
  17. (let newValue (Concat newValue (Concat (String '" ") (ToString (Unwrap (Coalesce (Just x)))))))
  18. (let newValue (Concat newValue (Concat (String '" ") (ToString (Exists (Coalesce n))))))
  19. # two arg
  20. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce x y)))))
  21. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce (Just x) y)))))
  22. (let newValue (Concat newValue (Concat (String '" ") (ToString (Unwrap (Coalesce (Just x) (Just y)))))))
  23. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce n y)))))
  24. (let newValue (Concat newValue (Concat (String '" ") (ToString (Unwrap (Coalesce n (Just y)))))))
  25. (let newValue (Concat newValue (Concat (String '" ") (ToString (Exists (Coalesce n n))))))
  26. # more args
  27. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce x y z)))))
  28. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce (Just x) (Just y) z)))))
  29. (let newValue (Concat newValue (Concat (String '" ") (ToString (Unwrap (Coalesce (Just x) (Just y) (Just z)))))))
  30. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce n (Just y) z)))))
  31. (let newValue (Concat newValue (Concat (String '" ") (ToString (Unwrap (Coalesce n (Just y) (Just z)))))))
  32. (let newValue (Concat newValue (Concat (String '" ") (ToString (Coalesce n n z)))))
  33. (let newValue (Concat newValue (Concat (String '" ") (ToString (Unwrap (Coalesce n n (Just z)))))))
  34. (let newValue (Concat newValue (Concat (String '" ") (ToString (Exists (Coalesce n n n))))))
  35. (let s (Struct))
  36. (let s (AddMember s 'key (Member item 'key)))
  37. (let s (AddMember s 'subkey (Member item 'subkey)))
  38. (let s (AddMember s 'value newValue))
  39. (return s)
  40. )))))
  41. (let mr_sink (DataSink 'yt (quote plato)))
  42. (let world (Write! world mr_sink (Key '('table (String 'Output))) table1map '('('mode 'append))))
  43. (let world (Commit! world mr_sink))
  44. (return world)
  45. )