passing.sql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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_QUERY(
  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. WITH UNCONDITIONAL ARRAY WRAPPER
  24. ),
  25. -- Time types
  26. JSON_QUERY(
  27. $json,
  28. "strict $var"
  29. PASSING
  30. CAST(1582044622 as Datetime) as var
  31. WITH UNCONDITIONAL ARRAY WRAPPER
  32. ),
  33. JSON_QUERY(
  34. $json,
  35. "strict $var"
  36. PASSING
  37. CAST(1582044622 as Timestamp) as var
  38. WITH UNCONDITIONAL ARRAY WRAPPER
  39. ),
  40. JSON_QUERY(
  41. $json,
  42. "strict $var"
  43. PASSING
  44. CAST("2020-02-18" as Date) as var
  45. WITH UNCONDITIONAL ARRAY WRAPPER
  46. ),
  47. -- Utf8
  48. JSON_QUERY(
  49. $json,
  50. "strict $var"
  51. PASSING
  52. CAST("привет" as Utf8) as var
  53. WITH UNCONDITIONAL ARRAY WRAPPER
  54. ),
  55. -- Bool
  56. JSON_QUERY(
  57. $json,
  58. "strict $var"
  59. PASSING
  60. true as var
  61. WITH UNCONDITIONAL ARRAY WRAPPER
  62. ),
  63. -- Json
  64. JSON_QUERY(
  65. $json,
  66. "strict $var"
  67. PASSING
  68. $json as var
  69. ),
  70. -- Nulls
  71. JSON_QUERY(
  72. $json,
  73. "strict $var"
  74. PASSING
  75. Nothing(Int64?) as var
  76. WITH UNCONDITIONAL ARRAY WRAPPER
  77. ),
  78. JSON_QUERY(
  79. $json,
  80. "strict $var"
  81. PASSING
  82. NULL as var
  83. WITH UNCONDITIONAL ARRAY WRAPPER
  84. );
  85. -- Check various ways to pass variable name
  86. SELECT
  87. JSON_QUERY(
  88. $json, "strict $var1"
  89. PASSING
  90. 123 as var1
  91. WITH UNCONDITIONAL ARRAY WRAPPER
  92. ),
  93. -- NOTE: VaR1 is not casted to upper-case VAR1 as standard expects
  94. JSON_QUERY(
  95. $json, "strict $VaR1"
  96. PASSING
  97. 123 as VaR1
  98. WITH UNCONDITIONAL ARRAY WRAPPER
  99. ),
  100. JSON_QUERY(
  101. $json, "strict $var1"
  102. PASSING
  103. 123 as "var1"
  104. WITH UNCONDITIONAL ARRAY WRAPPER
  105. ),
  106. JSON_QUERY(
  107. $json, "strict $VaR1"
  108. PASSING
  109. 123 as "VaR1"
  110. WITH UNCONDITIONAL ARRAY WRAPPER
  111. );