variant_struct_comp.sql 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* postgres can not */
  2. $id = ($x)->{
  3. $f = Yql::Callable(CallableType(0, TypeOf($x)), ()->{return $x});
  4. return $f();
  5. };
  6. $vt1 = ParseType("Variant<a:Int32,b:Uint32?>");
  7. $vt2 = ParseType("Variant<b:Int64,c:Uint32>");
  8. select AsTuple(
  9. Variant(1,"a",$vt1) == Variant($id(1u),"b",$vt2),
  10. Variant(1,"b",$vt1) == Variant($id(1u),"b",$vt2),
  11. Variant(1,"b",$vt1) == Variant($id(2u),"b",$vt2),
  12. Variant(1,"b",$vt1) == Variant($id(1u),"c",$vt2),
  13. Variant(1u/0u,"b",$vt1) == Variant($id(1u),"c",$vt2),
  14. Variant(1u/0u,"b",$vt1) == Variant($id(1u),"b",$vt2)
  15. );
  16. select AsTuple(
  17. Variant(1,"a",$vt1) != Variant($id(1u),"b",$vt2),
  18. Variant(1,"b",$vt1) != Variant($id(1u),"b",$vt2),
  19. Variant(1,"b",$vt1) != Variant($id(2u),"b",$vt2),
  20. Variant(1,"b",$vt1) != Variant($id(1u),"c",$vt2),
  21. Variant(1u/0u,"b",$vt1) != Variant($id(1u),"c",$vt2),
  22. Variant(1u/0u,"b",$vt1) != Variant($id(1u),"b",$vt2)
  23. );
  24. select AsTuple(
  25. Variant(1,"a",$vt1) < Variant($id(1u),"b",$vt2),
  26. Variant(1,"b",$vt1) < Variant($id(1u),"b",$vt2),
  27. Variant(1,"b",$vt1) < Variant($id(2u),"b",$vt2),
  28. Variant(1,"b",$vt1) < Variant($id(1u),"c",$vt2),
  29. Variant(1u/0u,"b",$vt1) < Variant($id(1u),"c",$vt2),
  30. Variant(1u/0u,"b",$vt1) < Variant($id(1u),"b",$vt2)
  31. );
  32. select AsTuple(
  33. Variant(1,"a",$vt1) <= Variant($id(1u),"b",$vt2),
  34. Variant(1,"b",$vt1) <= Variant($id(1u),"b",$vt2),
  35. Variant(1,"b",$vt1) <= Variant($id(2u),"b",$vt2),
  36. Variant(1,"b",$vt1) <= Variant($id(1u),"c",$vt2),
  37. Variant(1u/0u,"b",$vt1) <= Variant($id(1u),"c",$vt2),
  38. Variant(1u/0u,"b",$vt1) <= Variant($id(1u),"b",$vt2)
  39. );
  40. select AsTuple(
  41. Variant(1,"a",$vt1) > Variant($id(1u),"b",$vt2),
  42. Variant(1,"b",$vt1) > Variant($id(1u),"b",$vt2),
  43. Variant(1,"b",$vt1) > Variant($id(2u),"b",$vt2),
  44. Variant(1,"b",$vt1) > Variant($id(1u),"c",$vt2),
  45. Variant(1u/0u,"b",$vt1) > Variant($id(1u),"c",$vt2),
  46. Variant(1u/0u,"b",$vt1) > Variant($id(1u),"b",$vt2)
  47. );
  48. select AsTuple(
  49. Variant(1,"a",$vt1) >= Variant($id(1u),"b",$vt2),
  50. Variant(1,"b",$vt1) >= Variant($id(1u),"b",$vt2),
  51. Variant(1,"b",$vt1) >= Variant($id(2u),"b",$vt2),
  52. Variant(1,"b",$vt1) >= Variant($id(1u),"c",$vt2),
  53. Variant(1u/0u,"b",$vt1) >= Variant($id(1u),"c",$vt2),
  54. Variant(1u/0u,"b",$vt1) >= Variant($id(1u),"b",$vt2)
  55. );