optional_in_job.sql 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. /* postgres can not */
  2. /* multirun can not */
  3. USE plato;
  4. insert into @a
  5. SELECT
  6. Yql::Nothing(OptionalType(DataType("String"))) as level1_null,
  7. Yql::Optional(OptionalType(DataType("String")), "val") as level1_just_val,
  8. Yql::Nothing(OptionalType(OptionalType(DataType("String")))) as level2_null,
  9. Yql::Optional(OptionalType(OptionalType(DataType("String"))), Yql::Nothing(OptionalType(DataType("String")))) as level2_just_null,
  10. Yql::Optional(OptionalType(OptionalType(DataType("String"))), Yql::Just("val")) as level2_just_just_val,
  11. Yql::Nothing(OptionalType(OptionalType(OptionalType(DataType("String"))))) as level3_null,
  12. Yql::Optional(OptionalType(OptionalType(OptionalType(DataType("String")))), Yql::Nothing(OptionalType(OptionalType(DataType("String"))))) as level3_just_null,
  13. Yql::Optional(OptionalType(OptionalType(OptionalType(DataType("String")))), Yql::Just(Yql::Nothing(OptionalType(DataType("String"))))) as level3_just_just_null,
  14. Yql::Optional(OptionalType(OptionalType(OptionalType(DataType("String")))), Yql::Just(Yql::Just("val"))) as level3_just_just_just_val,
  15. "const" as const
  16. ;
  17. commit;
  18. -- Everything should be True
  19. select
  20. level1_null is null,
  21. Yql::Unwrap(level1_just_val) = "val",
  22. level2_null is null,
  23. Yql::Unwrap(level2_just_null) is null,
  24. Yql::Unwrap(Yql::Unwrap(level2_just_just_val)) = "val",
  25. level3_null is null,
  26. Yql::Unwrap(level3_just_null) is null,
  27. Yql::Unwrap(Yql::Unwrap(level3_just_just_null)) is null,
  28. Yql::Unwrap(Yql::Unwrap(Yql::Unwrap(level3_just_just_just_val))) = "val",
  29. True
  30. from @a
  31. where const = "const";