Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbb319e6

Browse files
author
Nikita Glukhov
committed
Remove generic gson functions
1 parent867b8c8 commitbb319e6

File tree

2 files changed

+0
-212
lines changed

2 files changed

+0
-212
lines changed

‎src/backend/utils/adt/json_generic.c‎

Lines changed: 0 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -18,89 +18,6 @@
1818
staticJson*JsonExpand(Json*tmp,Datumvalue,boolfreeValue,
1919
JsonContainerOps*ops);
2020

21-
JsonValue*
22-
JsonValueCopy(JsonValue*res,constJsonValue*val)
23-
{
24-
check_stack_depth();
25-
26-
if (!res)
27-
res= (JsonValue*)palloc(sizeof(JsonValue));
28-
29-
res->type=val->type;
30-
31-
switch (val->type)
32-
{
33-
casejbvNull:
34-
break;
35-
36-
casejbvBool:
37-
res->val.boolean=val->val.boolean;
38-
break;
39-
40-
casejbvString:
41-
{/* copy string values in the current context */
42-
char*buf=palloc(val->val.string.len+1);
43-
memcpy(buf,val->val.string.val,val->val.string.len);
44-
buf[val->val.string.len]=0;
45-
res->val.string.val=buf;
46-
res->val.string.len=val->val.string.len;
47-
break;
48-
}
49-
50-
casejbvNumeric:
51-
/* same for numeric */
52-
res->val.numeric=
53-
DatumGetNumeric(DirectFunctionCall1(numeric_uplus,
54-
NumericGetDatum(val->val.numeric)));
55-
break;
56-
57-
casejbvArray:
58-
{
59-
inti;
60-
61-
res->val.array=val->val.array;
62-
res->val.array.elems= (JsonValue*)
63-
palloc(sizeof(JsonValue)*val->val.array.nElems);
64-
65-
for (i=0;i<val->val.array.nElems;i++)
66-
JsonValueCopy(&res->val.array.elems[i],
67-
&val->val.array.elems[i]);
68-
69-
break;
70-
}
71-
72-
casejbvObject:
73-
{
74-
inti;
75-
76-
res->val.object=val->val.object;
77-
res->val.object.pairs= (JsonPair*)
78-
palloc(sizeof(JsonPair)*val->val.object.nPairs);
79-
80-
for (i=0;i<val->val.object.nPairs;i++)
81-
{
82-
res->val.object.pairs[i].order=val->val.object.pairs[i].order;
83-
JsonValueCopy(&res->val.object.pairs[i].key,
84-
&val->val.object.pairs[i].key);
85-
JsonValueCopy(&res->val.object.pairs[i].value,
86-
&val->val.object.pairs[i].value);
87-
}
88-
89-
break;
90-
}
91-
92-
casejbvBinary:
93-
res->val.binary=val->val.binary;
94-
res->val.binary.data=JsonCopy(val->val.binary.data);
95-
break;
96-
97-
default:
98-
elog(ERROR,"unknown json value type %d",val->type);
99-
}
100-
101-
returnres;
102-
}
103-
10421
JsonValue*
10522
JsonExtractScalar(JsonContainer*jc,JsonValue*scalar)
10623
{
@@ -142,129 +59,6 @@ JsonValueUnwrap(const JsonValue *val, JsonValue *valbuf)
14259
returnval;
14360
}
14461

145-
staticinlineJsonValue*
146-
jsonFindKeyInObjectInternal(JsonContainer*obj,constchar*key,intlen,
147-
boollast)
148-
{
149-
JsonValue*res=NULL;
150-
JsonValuejbv;
151-
JsonIterator*it;
152-
JsonIteratorTokentok;
153-
154-
Assert(JsonContainerIsObject(obj));
155-
156-
it=JsonIteratorInit(obj);
157-
158-
while ((tok=JsonIteratorNext(&it,&jbv, true))!=WJB_DONE)
159-
{
160-
if (tok==WJB_KEY&&
161-
!lengthCompareJsonbString(key,len,
162-
jbv.val.string.val,jbv.val.string.len))
163-
{
164-
if (!last|| !res)
165-
res=palloc(sizeof(JsonValue));
166-
167-
tok=JsonIteratorNext(&it,res, true);
168-
Assert(tok==WJB_VALUE);
169-
170-
if (last)
171-
continue;
172-
173-
JsonIteratorFree(it);
174-
break;
175-
}
176-
}
177-
178-
returnres;
179-
}
180-
181-
JsonValue*
182-
jsonFindKeyInObject(JsonContainer*obj,constchar*key,intlen)
183-
{
184-
returnjsonFindKeyInObjectInternal(obj,key,len, false);
185-
}
186-
187-
JsonValue*
188-
jsonFindLastKeyInObject(JsonContainer*obj,constchar*key,intlen)
189-
{
190-
returnjsonFindKeyInObjectInternal(obj,key,len, true);
191-
}
192-
193-
JsonValue*
194-
jsonFindValueInArray(JsonContainer*array,constJsonValue*elem)
195-
{
196-
JsonValue*val=palloc(sizeof(JsonValue));
197-
JsonIterator*it;
198-
JsonIteratorTokentok;
199-
200-
Assert(JsonContainerIsArray(array));
201-
Assert(IsAJsonbScalar(elem));
202-
203-
it=JsonIteratorInit(array);
204-
205-
while ((tok=JsonIteratorNext(&it,val, true))!=WJB_DONE)
206-
{
207-
if (tok==WJB_ELEM&&val->type==elem->type&&
208-
equalsJsonbScalarValue(val,elem))
209-
{
210-
JsonIteratorFree(it);
211-
returnval;
212-
}
213-
}
214-
215-
pfree(val);
216-
returnNULL;
217-
}
218-
219-
JsonValue*
220-
jsonGetArrayElement(JsonContainer*array,uint32index)
221-
{
222-
JsonValue*val=palloc(sizeof(JsonValue));
223-
JsonIterator*it;
224-
JsonIteratorTokentok;
225-
226-
Assert(JsonContainerIsArray(array));
227-
228-
it=JsonIteratorInit(array);
229-
230-
while ((tok=JsonIteratorNext(&it,val, true))!=WJB_DONE)
231-
{
232-
if (tok==WJB_ELEM)
233-
{
234-
if (index--==0)
235-
{
236-
JsonIteratorFree(it);
237-
returnval;
238-
}
239-
}
240-
}
241-
242-
pfree(val);
243-
244-
returnNULL;
245-
}
246-
247-
uint32
248-
jsonGetArraySize(JsonContainer*array)
249-
{
250-
JsonValueval;
251-
JsonIterator*it;
252-
JsonIteratorTokentok;
253-
uint32size=0;
254-
255-
Assert(JsonContainerIsArray(array));
256-
257-
it=JsonIteratorInit(array);
258-
259-
while ((tok=JsonIteratorNext(&it,&val, true))!=WJB_DONE)
260-
{
261-
if (tok==WJB_ELEM)
262-
size++;
263-
}
264-
265-
returnsize;
266-
}
267-
26862
JsonValue*
26963
JsonToJsonValue(Json*json,JsonValue*jv)
27064
{

‎src/include/utils/json_generic.h‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,6 @@ extern char *JsonbToCStringIndent(StringInfo out, JsonContainer *in,
301301
#defineJsonbToCString(out,in,estimated_len) \
302302
JsonToCStringExt(out, in, estimated_len)
303303

304-
externJsonValue*jsonFindKeyInObject(JsonContainer*obj,constchar*key,intlen);
305-
externJsonValue*jsonFindLastKeyInObject(JsonContainer*obj,constchar*key,intlen);
306-
externJsonValue*jsonFindValueInArray(JsonContainer*array,constJsonValue*elem);
307-
externuint32jsonGetArraySize(JsonContainer*array);
308-
externJsonValue*jsonGetArrayElement(JsonContainer*array,uint32index);
309-
310304
externboolJsonValueScalarEquals(constJsonValue*aScalar,
311305
constJsonValue*bScalar);
312306

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp