@@ -113,6 +113,103 @@ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123' WITHOUT UNIQUE KEYS);
113
113
Output: JSON('123'::json)
114
114
(2 rows)
115
115
116
+ SELECT JSON('123' RETURNING text);
117
+ ERROR: cannot use RETURNING type text in JSON()
118
+ LINE 1: SELECT JSON('123' RETURNING text);
119
+ ^
120
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123');
121
+ QUERY PLAN
122
+ -----------------------------
123
+ Result
124
+ Output: JSON('123'::json)
125
+ (2 rows)
126
+
127
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123' RETURNING json);
128
+ QUERY PLAN
129
+ -----------------------------
130
+ Result
131
+ Output: JSON('123'::json)
132
+ (2 rows)
133
+
134
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123' RETURNING jsonb);
135
+ QUERY PLAN
136
+ ----------------------------------------------
137
+ Result
138
+ Output: JSON('123'::jsonb RETURNING jsonb)
139
+ (2 rows)
140
+
141
+ SELECT pg_typeof(JSON('123'));
142
+ pg_typeof
143
+ -----------
144
+ json
145
+ (1 row)
146
+
147
+ SELECT pg_typeof(JSON('123' RETURNING json));
148
+ pg_typeof
149
+ -----------
150
+ json
151
+ (1 row)
152
+
153
+ SELECT pg_typeof(JSON('123' RETURNING jsonb));
154
+ pg_typeof
155
+ -----------
156
+ jsonb
157
+ (1 row)
158
+
159
+ SET sql_json = jsonb;
160
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123');
161
+ QUERY PLAN
162
+ -----------------------------
163
+ Result
164
+ Output: JSON('123'::json)
165
+ (2 rows)
166
+
167
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123' RETURNING json);
168
+ QUERY PLAN
169
+ -----------------------------
170
+ Result
171
+ Output: JSON('123'::json)
172
+ (2 rows)
173
+
174
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123' RETURNING jsonb);
175
+ QUERY PLAN
176
+ -----------------------------
177
+ Result
178
+ Output: JSON('123'::json)
179
+ (2 rows)
180
+
181
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON('123' RETURNING json text);
182
+ QUERY PLAN
183
+ ------------------------------------------------------
184
+ Result
185
+ Output: JSON('123'::json text RETURNING json text)
186
+ (2 rows)
187
+
188
+ SELECT pg_typeof(JSON('123'));
189
+ pg_typeof
190
+ -----------
191
+ json
192
+ (1 row)
193
+
194
+ SELECT pg_typeof(JSON('123' RETURNING json));
195
+ pg_typeof
196
+ -----------
197
+ json
198
+ (1 row)
199
+
200
+ SELECT pg_typeof(JSON('123' RETURNING jsonb));
201
+ pg_typeof
202
+ -----------
203
+ json
204
+ (1 row)
205
+
206
+ SELECT pg_typeof(JSON('123' RETURNING json text));
207
+ pg_typeof
208
+ -----------
209
+ json text
210
+ (1 row)
211
+
212
+ SET sql_json = json;
116
213
-- JSON_SCALAR()
117
214
SELECT JSON_SCALAR();
118
215
ERROR: syntax error at or near ")"
@@ -204,6 +301,50 @@ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR('123');
204
301
Output: JSON_SCALAR('123'::text)
205
302
(2 rows)
206
303
304
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR(123 RETURNING json);
305
+ QUERY PLAN
306
+ ----------------------------
307
+ Result
308
+ Output: JSON_SCALAR(123)
309
+ (2 rows)
310
+
311
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR(123 RETURNING jsonb);
312
+ QUERY PLAN
313
+ --------------------------------------------
314
+ Result
315
+ Output: JSON_SCALAR(123 RETURNING jsonb)
316
+ (2 rows)
317
+
318
+ SET sql_json = jsonb;
319
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR(123);
320
+ QUERY PLAN
321
+ ----------------------------
322
+ Result
323
+ Output: JSON_SCALAR(123)
324
+ (2 rows)
325
+
326
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR(123 RETURNING json);
327
+ QUERY PLAN
328
+ ----------------------------
329
+ Result
330
+ Output: JSON_SCALAR(123)
331
+ (2 rows)
332
+
333
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR(123 RETURNING jsonb);
334
+ QUERY PLAN
335
+ ----------------------------
336
+ Result
337
+ Output: JSON_SCALAR(123)
338
+ (2 rows)
339
+
340
+ EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SCALAR(123 RETURNING json text);
341
+ QUERY PLAN
342
+ ------------------------------------------------
343
+ Result
344
+ Output: JSON_SCALAR(123 RETURNING json text)
345
+ (2 rows)
346
+
347
+ SET sql_json = json;
207
348
-- JSON_SERIALIZE()
208
349
SELECT JSON_SERIALIZE();
209
350
ERROR: syntax error at or near ")"
0 commit comments