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

Commitf33a71a

Browse files
committed
De-anonymize the union in JsonbValue.
Needed for strict C89 compliance.
1 parent682c5bb commitf33a71a

File tree

7 files changed

+202
-202
lines changed

7 files changed

+202
-202
lines changed

‎contrib/hstore/hstore_io.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,9 +1397,9 @@ hstore_to_jsonb(PG_FUNCTION_ARGS)
13971397

13981398
key.estSize=sizeof(JEntry);
13991399
key.type=jbvString;
1400-
key.string.len=HS_KEYLEN(entries,i);
1401-
key.string.val=pnstrdup(HS_KEY(entries,base,i),key.string.len);
1402-
key.estSize+=key.string.len;
1400+
key.val.string.len=HS_KEYLEN(entries,i);
1401+
key.val.string.val=pnstrdup(HS_KEY(entries,base,i),key.val.string.len);
1402+
key.estSize+=key.val.string.len;
14031403

14041404
res=pushJsonbValue(&state,WJB_KEY,&key);
14051405

@@ -1412,9 +1412,9 @@ hstore_to_jsonb(PG_FUNCTION_ARGS)
14121412
{
14131413
val.estSize=sizeof(JEntry);
14141414
val.type=jbvString;
1415-
val.string.len=HS_VALLEN(entries,i);
1416-
val.string.val=pnstrdup(HS_VAL(entries,base,i),val.string.len);
1417-
val.estSize+=val.string.len;
1415+
val.val.string.len=HS_VALLEN(entries,i);
1416+
val.val.string.val=pnstrdup(HS_VAL(entries,base,i),val.val.string.len);
1417+
val.estSize+=val.val.string.len;
14181418
}
14191419
res=pushJsonbValue(&state,WJB_VALUE,&val);
14201420
}
@@ -1449,9 +1449,9 @@ hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
14491449

14501450
key.estSize=sizeof(JEntry);
14511451
key.type=jbvString;
1452-
key.string.len=HS_KEYLEN(entries,i);
1453-
key.string.val=pnstrdup(HS_KEY(entries,base,i),key.string.len);
1454-
key.estSize+=key.string.len;
1452+
key.val.string.len=HS_KEYLEN(entries,i);
1453+
key.val.string.val=pnstrdup(HS_KEY(entries,base,i),key.val.string.len);
1454+
key.estSize+=key.val.string.len;
14551455

14561456
res=pushJsonbValue(&state,WJB_KEY,&key);
14571457

@@ -1465,12 +1465,12 @@ hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
14651465
elseif (HS_VALLEN(entries,i)==1&&*(HS_VAL(entries,base,i))=='t')
14661466
{
14671467
val.type=jbvBool;
1468-
val.boolean= true;
1468+
val.val.boolean= true;
14691469
}
14701470
elseif (HS_VALLEN(entries,i)==1&&*(HS_VAL(entries,base,i))=='f')
14711471
{
14721472
val.type=jbvBool;
1473-
val.boolean= false;
1473+
val.val.boolean= false;
14741474
}
14751475
else
14761476
{
@@ -1519,17 +1519,17 @@ hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
15191519
if (is_number)
15201520
{
15211521
val.type=jbvNumeric;
1522-
val.numeric=DatumGetNumeric(
1522+
val.val.numeric=DatumGetNumeric(
15231523
DirectFunctionCall3(numeric_in,CStringGetDatum(tmp.data),0,-1));
1524-
val.estSize+=VARSIZE_ANY(val.numeric)+sizeof(JEntry);
1524+
val.estSize+=VARSIZE_ANY(val.val.numeric)+sizeof(JEntry);
15251525
}
15261526
else
15271527
{
15281528
val.estSize=sizeof(JEntry);
15291529
val.type=jbvString;
1530-
val.string.len=HS_VALLEN(entries,i);
1531-
val.string.val=pnstrdup(HS_VAL(entries,base,i),val.string.len);
1532-
val.estSize+=val.string.len;
1530+
val.val.string.len=HS_VALLEN(entries,i);
1531+
val.val.string.val=pnstrdup(HS_VAL(entries,base,i),val.val.string.len);
1532+
val.estSize+=val.val.string.len;
15331533
}
15341534
}
15351535
res=pushJsonbValue(&state,WJB_VALUE,&val);

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

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,9 @@ jsonb_in_object_field_start(void *pstate, char *fname, bool isnull)
247247

248248
Assert (fname!=NULL);
249249
v.type=jbvString;
250-
v.string.len=checkStringLen(strlen(fname));
251-
v.string.val=pnstrdup(fname,v.string.len);
252-
v.estSize=sizeof(JEntry)+v.string.len;
250+
v.val.string.len=checkStringLen(strlen(fname));
251+
v.val.string.val=pnstrdup(fname,v.val.string.len);
252+
v.estSize=sizeof(JEntry)+v.val.string.len;
253253

254254
_state->res=pushJsonbValue(&_state->parseState,WJB_KEY,&v);
255255
}
@@ -263,15 +263,15 @@ jsonb_put_escaped_value(StringInfo out, JsonbValue * scalarVal)
263263
appendBinaryStringInfo(out,"null",4);
264264
break;
265265
casejbvString:
266-
escape_json(out,pnstrdup(scalarVal->string.val,scalarVal->string.len));
266+
escape_json(out,pnstrdup(scalarVal->val.string.val,scalarVal->val.string.len));
267267
break;
268268
casejbvNumeric:
269269
appendStringInfoString(out,
270270
DatumGetCString(DirectFunctionCall1(numeric_out,
271-
PointerGetDatum(scalarVal->numeric))));
271+
PointerGetDatum(scalarVal->val.numeric))));
272272
break;
273273
casejbvBool:
274-
if (scalarVal->boolean)
274+
if (scalarVal->val.boolean)
275275
appendBinaryStringInfo(out,"true",4);
276276
else
277277
appendBinaryStringInfo(out,"false",5);
@@ -298,9 +298,9 @@ jsonb_in_scalar(void *pstate, char *token, JsonTokenType tokentype)
298298
caseJSON_TOKEN_STRING:
299299
Assert (token!=NULL);
300300
v.type=jbvString;
301-
v.string.len=checkStringLen(strlen(token));
302-
v.string.val=pnstrdup(token,v.string.len);
303-
v.estSize+=v.string.len;
301+
v.val.string.len=checkStringLen(strlen(token));
302+
v.val.string.val=pnstrdup(token,v.val.string.len);
303+
v.estSize+=v.val.string.len;
304304
break;
305305
caseJSON_TOKEN_NUMBER:
306306
/*
@@ -309,16 +309,16 @@ jsonb_in_scalar(void *pstate, char *token, JsonTokenType tokentype)
309309
*/
310310
Assert (token!=NULL);
311311
v.type=jbvNumeric;
312-
v.numeric=DatumGetNumeric(DirectFunctionCall3(numeric_in,CStringGetDatum(token),0,-1));
313-
v.estSize+=VARSIZE_ANY(v.numeric)+sizeof(JEntry)/* alignment */ ;
312+
v.val.numeric=DatumGetNumeric(DirectFunctionCall3(numeric_in,CStringGetDatum(token),0,-1));
313+
v.estSize+=VARSIZE_ANY(v.val.numeric)+sizeof(JEntry)/* alignment */ ;
314314
break;
315315
caseJSON_TOKEN_TRUE:
316316
v.type=jbvBool;
317-
v.boolean= true;
317+
v.val.boolean= true;
318318
break;
319319
caseJSON_TOKEN_FALSE:
320320
v.type=jbvBool;
321-
v.boolean= false;
321+
v.val.boolean= false;
322322
break;
323323
caseJSON_TOKEN_NULL:
324324
v.type=jbvNull;
@@ -335,8 +335,8 @@ jsonb_in_scalar(void *pstate, char *token, JsonTokenType tokentype)
335335
JsonbValueva;
336336

337337
va.type=jbvArray;
338-
va.array.rawScalar= true;
339-
va.array.nElems=1;
338+
va.val.array.rawScalar= true;
339+
va.val.array.nElems=1;
340340

341341
_state->res=pushJsonbValue(&_state->parseState,WJB_BEGIN_ARRAY,&va);
342342
_state->res=pushJsonbValue(&_state->parseState,WJB_ELEM,&v);
@@ -399,7 +399,7 @@ JsonbToCString(StringInfo out, JsonbSuperHeader in, int estimated_len)
399399
appendBinaryStringInfo(out,", ",2);
400400
first= true;
401401

402-
if (!v.array.rawScalar)
402+
if (!v.val.array.rawScalar)
403403
appendStringInfoChar(out,'[');
404404
level++;
405405
break;
@@ -448,7 +448,7 @@ JsonbToCString(StringInfo out, JsonbSuperHeader in, int estimated_len)
448448
break;
449449
caseWJB_END_ARRAY:
450450
level--;
451-
if (!v.array.rawScalar)
451+
if (!v.val.array.rawScalar)
452452
appendStringInfoChar(out,']');
453453
first= false;
454454
break;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ make_scalar_key(const JsonbValue * scalarVal, char flag)
618618
item=make_text_key("n",1,flag);
619619
break;
620620
casejbvBool:
621-
item=make_text_key(scalarVal->boolean ?"t" :"f",1,flag);
621+
item=make_text_key(scalarVal->val.boolean ?"t" :"f",1,flag);
622622
break;
623623
casejbvNumeric:
624624
/*
@@ -630,12 +630,12 @@ make_scalar_key(const JsonbValue * scalarVal, char flag)
630630
* storing a "union" type in the GIN B-Tree, and indexing Jsonb
631631
* strings takes precedence.
632632
*/
633-
cstr=numeric_normalize(scalarVal->numeric);
633+
cstr=numeric_normalize(scalarVal->val.numeric);
634634
item=make_text_key(cstr,strlen(cstr),flag);
635635
pfree(cstr);
636636
break;
637637
casejbvString:
638-
item=make_text_key(scalarVal->string.val,scalarVal->string.len,
638+
item=make_text_key(scalarVal->val.string.val,scalarVal->val.string.len,
639639
flag);
640640
break;
641641
default:

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ jsonb_exists(PG_FUNCTION_ARGS)
3131
* top level. No recursion occurs.
3232
*/
3333
kval.type=jbvString;
34-
kval.string.val=VARDATA_ANY(key);
35-
kval.string.len=VARSIZE_ANY_EXHDR(key);
34+
kval.val.string.val=VARDATA_ANY(key);
35+
kval.val.string.len=VARSIZE_ANY_EXHDR(key);
3636

3737
v=findJsonbValueFromSuperHeader(VARDATA(jb),
3838
JB_FOBJECT |JB_FARRAY,
@@ -52,7 +52,7 @@ jsonb_exists_any(PG_FUNCTION_ARGS)
5252
lowbound=0;
5353
inti;
5454

55-
if (arrKey==NULL||arrKey->object.nPairs==0)
55+
if (arrKey==NULL||arrKey->val.object.nPairs==0)
5656
PG_RETURN_BOOL(false);
5757

5858
if (JB_ROOT_IS_OBJECT(jb))
@@ -64,12 +64,12 @@ jsonb_exists_any(PG_FUNCTION_ARGS)
6464
* each search can start one entry past the previous "found" entry, or at
6565
* the lower bound of the last search.
6666
*/
67-
for (i=0;i<arrKey->array.nElems;i++)
67+
for (i=0;i<arrKey->val.array.nElems;i++)
6868
{
6969
if (findJsonbValueFromSuperHeader(VARDATA(jb),
7070
JB_FOBJECT |JB_FARRAY,
7171
plowbound,
72-
arrKey->array.elems+i)!=NULL)
72+
arrKey->val.array.elems+i)!=NULL)
7373
PG_RETURN_BOOL(true);
7474
}
7575

@@ -86,7 +86,7 @@ jsonb_exists_all(PG_FUNCTION_ARGS)
8686
uint32lowbound=0;
8787
inti;
8888

89-
if (arrKey==NULL||arrKey->array.nElems==0)
89+
if (arrKey==NULL||arrKey->val.array.nElems==0)
9090
PG_RETURN_BOOL(true);
9191

9292
if (JB_ROOT_IS_OBJECT(jb))
@@ -98,12 +98,12 @@ jsonb_exists_all(PG_FUNCTION_ARGS)
9898
* each search can start one entry past the previous "found" entry, or at
9999
* the lower bound of the last search.
100100
*/
101-
for (i=0;i<arrKey->array.nElems;i++)
101+
for (i=0;i<arrKey->val.array.nElems;i++)
102102
{
103103
if (findJsonbValueFromSuperHeader(VARDATA(jb),
104104
JB_FOBJECT |JB_FARRAY,
105105
plowbound,
106-
arrKey->array.elems+i)==NULL)
106+
arrKey->val.array.elems+i)==NULL)
107107
PG_RETURN_BOOL(false);
108108
}
109109

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp