passing.sql 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* syntax version 1 */
  2. /* postgres can not */
  3. $json = CAST(@@{
  4. "key": 123
  5. }@@ as Json);
  6. -- Check all supported types for variables
  7. SELECT
  8. -- Numeric types
  9. JSON_VALUE(
  10. $json,
  11. "strict $var1 + $var2 + $var3 + $var4 + $var5 + $var6 + $var7 + $var8 + $var9 + $var10"
  12. PASSING
  13. CAST(1 as Int8) as var1,
  14. CAST(2 as Uint8) as var2,
  15. CAST(3 as Int16) as var3,
  16. CAST(4 as Uint16) as var4,
  17. CAST(5 as Int32) as var5,
  18. CAST(6 as Uint32) as var6,
  19. CAST(7 as Int64) as var7,
  20. CAST(8 as Uint64) as var8,
  21. CAST(9 as Double) as var9,
  22. CAST(10 as Float) as var10
  23. ),
  24. -- Time types
  25. JSON_VALUE(
  26. $json,
  27. "strict $var"
  28. PASSING
  29. CAST(1582044622 as Datetime) as var
  30. ),
  31. JSON_VALUE(
  32. $json,
  33. "strict $var"
  34. PASSING
  35. CAST(1582044622 as Timestamp) as var
  36. ),
  37. JSON_VALUE(
  38. $json,
  39. "strict $var"
  40. PASSING
  41. CAST("2020-02-18" as Date) as var
  42. ),
  43. -- Utf8
  44. JSON_VALUE(
  45. $json,
  46. "strict $var"
  47. PASSING
  48. CAST("привет" as Utf8) as var
  49. ),
  50. -- Bool
  51. JSON_VALUE(
  52. $json,
  53. "strict $var"
  54. PASSING
  55. true as var
  56. ),
  57. -- Json
  58. JSON_VALUE(
  59. $json,
  60. "strict $var.key"
  61. PASSING
  62. $json as var
  63. ),
  64. -- Nulls
  65. JSON_VALUE(
  66. $json,
  67. "strict $var"
  68. PASSING
  69. Nothing(Int64?) as var
  70. ),
  71. JSON_VALUE(
  72. $json,
  73. "strict $var"
  74. PASSING
  75. NULL as var
  76. );
  77. -- Check various ways to pass variable name
  78. SELECT
  79. JSON_VALUE(
  80. $json, "strict $var1"
  81. PASSING
  82. 123 as var1
  83. ),
  84. -- NOTE: VaR1 is not casted to upper-case VAR1 as standard expects
  85. JSON_VALUE(
  86. $json, "strict $VaR1"
  87. PASSING
  88. 123 as VaR1
  89. ),
  90. JSON_VALUE(
  91. $json, "strict $var1"
  92. PASSING
  93. 123 as "var1"
  94. ),
  95. JSON_VALUE(
  96. $json, "strict $VaR1"
  97. PASSING
  98. 123 as "VaR1"
  99. );