Age Owner TLA Line data Source code
1 : #include <stdio.h>
2 :
3 : EXEC SQL INCLUDE sqlca;
4 : exec sql include ../regression;
5 :
6 : EXEC SQL WHENEVER SQLERROR sqlprint;
7 :
8 : int
11 alvherre 9 GNC 1 : main ()
10 : {
11 : EXEC SQL BEGIN DECLARE SECTION;
12 : char json[1024];
13 : bool is_json[8];
14 : EXEC SQL END DECLARE SECTION;
15 :
16 1 : ECPGdebug (1, stderr);
17 :
18 1 : EXEC SQL CONNECT TO REGRESSDB1;
19 1 : EXEC SQL SET AUTOCOMMIT = ON;
20 1 :
21 1 : EXEC SQL SELECT JSON_OBJECT(RETURNING text) INTO :json;
22 1 : printf("Found json=%s\n", json);
23 :
24 1 : EXEC SQL SELECT JSON_OBJECT(RETURNING text FORMAT JSON) INTO :json;
25 1 : printf("Found json=%s\n", json);
26 :
27 1 : EXEC SQL SELECT JSON_ARRAY(RETURNING jsonb) INTO :json;
28 1 : printf("Found json=%s\n", json);
29 :
30 1 : EXEC SQL SELECT JSON_ARRAY(RETURNING jsonb FORMAT JSON) INTO :json;
31 1 : printf("Found json=%s\n", json);
32 :
33 1 : EXEC SQL SELECT JSON_OBJECT(1: 1, '1': NULL WITH UNIQUE) INTO :json;
34 1 : // error
35 :
36 1 : EXEC SQL SELECT JSON_OBJECT(1: 1, '2': NULL, 1: '2' ABSENT ON NULL WITHOUT UNIQUE KEYS) INTO :json;
37 1 : printf("Found json=%s\n", json);
38 :
39 1 : EXEC SQL SELECT JSON_OBJECT(1: 1, '2': NULL ABSENT ON NULL WITHOUT UNIQUE RETURNING jsonb) INTO :json;
40 1 : printf("Found json=%s\n", json);
41 :
9 42 1 : EXEC SQL WITH val (js) AS (VALUES ('{ "a": 1, "b": [{ "a": 1, "b": 0, "a": 2 }] }'))
43 : SELECT
44 : js IS JSON "IS JSON",
45 : js IS NOT JSON "IS NOT JSON",
46 : js IS JSON VALUE "IS VALUE",
47 : js IS JSON OBJECT "IS OBJECT",
48 : js IS JSON ARRAY "IS ARRAY",
49 : js IS JSON SCALAR "IS SCALAR",
50 : js IS JSON WITHOUT UNIQUE KEYS "WITHOUT UNIQUE",
51 : js IS JSON WITH UNIQUE KEYS "WITH UNIQUE"
52 : INTO :is_json[0], :is_json[1], :is_json[2], :is_json[3], :is_json[4],
53 : :is_json[5], :is_json[6], :is_json[7]
54 : FROM val;
55 9 : for (int i = 0; i < sizeof(is_json); i++)
56 8 : printf("Found is_json[%d]: %s\n", i, is_json[i] ? "true" : "false");
57 :
11 58 1 : EXEC SQL DISCONNECT;
59 1 :
60 1 : return 0;
61 : }
|