optional_pull.sql 1.4 KB

1234567891011121314151617181920212223242526272829303132
  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. -- Check result representation
  19. select
  20. level1_null,
  21. level1_just_val,
  22. level2_null,
  23. level2_just_null,
  24. level2_just_just_val,
  25. level3_null,
  26. level3_just_null,
  27. level3_just_just_null,
  28. level3_just_just_just_val
  29. from @a;