Age Owner Branch data 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
382 alvherre@alvh.no-ip. 9 :CBC 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 : :
269 amitlan@postgresql.o 42 :GNC 1 : EXEC SQL SELECT JSON(NULL) INTO :json;
43 [ + - ]: 1 : printf("Found json=%s\n", json);
44 : :
45 : 1 : EXEC SQL SELECT JSON('{ "a" : 1 } ' FORMAT JSON) INTO :json;
46 [ - + ]: 1 : printf("Found json=%s\n", json);
47 : :
48 : 1 : EXEC SQL SELECT JSON('{ "a" : 1 } ' FORMAT JSON ENCODING UTF8) INTO :json;
49 [ + - ]: 1 : // error
50 : :
51 : 1 : EXEC SQL SELECT JSON(' 1 '::jsonb) INTO :json;
52 [ - + ]: 1 : printf("Found json=%s\n", json);
53 : :
54 : 1 : EXEC SQL SELECT JSON(' 1 '::json WITH UNIQUE KEYS) INTO json;
55 [ + - ]: 1 : // error
56 : :
57 : 1 : EXEC SQL SELECT JSON('{"a": 1, "a": 2}') INTO :json;
58 [ - + ]: 1 : printf("Found json=%s\n", json);
59 : :
60 : 1 : EXEC SQL SELECT JSON('{"a": 1, "a": 2}' WITH UNIQUE KEYS) INTO :json;
61 [ + - ]: 1 : // error
62 : :
63 : 1 : EXEC SQL SELECT JSON_SCALAR(NULL) INTO :json;
64 [ + - ]: 1 : printf("Found json=%s\n", json);
65 : :
66 : 1 : EXEC SQL SELECT JSON_SCALAR(NULL::int) INTO :json;
67 [ + - ]: 1 : printf("Found json=%s\n", json);
68 : :
69 : 1 : EXEC SQL SELECT JSON_SCALAR(123.45) INTO :json;
70 [ - + ]: 1 : printf("Found json=%s\n", json);
71 : :
72 : 1 : EXEC SQL SELECT JSON_SCALAR(true) INTO :json;
73 [ - + ]: 1 : printf("Found json=%s\n", json);
74 : :
75 : 1 : EXEC SQL SELECT JSON_SCALAR(' 123.45') INTO :json;
76 [ - + ]: 1 : printf("Found json=%s\n", json);
77 : :
78 : 1 : EXEC SQL SELECT JSON_SCALAR('2020-06-07 01:02:03'::timestamp) INTO :json;
79 [ - + ]: 1 : printf("Found json=%s\n", json);
80 : :
81 : 1 : EXEC SQL SELECT JSON_SCALAR('{}'::jsonb) INTO :json;
82 [ - + ]: 1 : printf("Found json=%s\n", json);
83 : :
84 : 1 : EXEC SQL SELECT JSON_SERIALIZE(NULL) INTO :json;
85 [ + - ]: 1 : printf("Found json=%s\n", json);
86 : :
87 : 1 : EXEC SQL SELECT JSON_SERIALIZE(JSON('{ "a" : 1 } ')) INTO :json;
88 [ - + ]: 1 : printf("Found json=%s\n", json);
89 : :
90 : 1 : EXEC SQL SELECT JSON_SERIALIZE('{ "a" : 1 } ') INTO :json;
91 [ - + ]: 1 : printf("Found json=%s\n", json);
92 : :
93 : 1 : EXEC SQL SELECT JSON_SERIALIZE('1' FORMAT JSON) INTO :json;
94 [ - + ]: 1 : printf("Found json=%s\n", json);
95 : :
96 : 1 : EXEC SQL SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING varchar) INTO :json;
97 [ - + ]: 1 : printf("Found json=%s\n", json);
98 : :
99 : 1 : EXEC SQL SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb);
100 [ + - ]: 1 : // error
101 : :
380 alvherre@alvh.no-ip. 102 :CBC 1 : EXEC SQL WITH val (js) AS (VALUES ('{ "a": 1, "b": [{ "a": 1, "b": 0, "a": 2 }] }'))
103 : : SELECT
104 : : js IS JSON "IS JSON",
105 : : js IS NOT JSON "IS NOT JSON",
106 : : js IS JSON VALUE "IS VALUE",
107 : : js IS JSON OBJECT "IS OBJECT",
108 : : js IS JSON ARRAY "IS ARRAY",
109 : : js IS JSON SCALAR "IS SCALAR",
110 : : js IS JSON WITHOUT UNIQUE KEYS "WITHOUT UNIQUE",
111 : : js IS JSON WITH UNIQUE KEYS "WITH UNIQUE"
112 : : INTO :is_json[0], :is_json[1], :is_json[2], :is_json[3], :is_json[4],
113 : : :is_json[5], :is_json[6], :is_json[7]
114 : : FROM val;
115 [ - + + + ]: 9 : for (int i = 0; i < sizeof(is_json); i++)
116 [ + + ]: 8 : printf("Found is_json[%d]: %s\n", i, is_json[i] ? "true" : "false");
117 : :
382 118 : 1 : EXEC SQL DISCONNECT;
119 [ - + ]: 1 :
120 : 1 : return 0;
121 : : }
|