@@ -48,11 +48,11 @@ struct JsonbParseState
4848struct JsonbIterator
4949{
5050 /* Container being iterated */
51- JsonbContainer * container ;
51+ const JsonbContainer * container ;
5252 uint32 nElems ; /* Number of elements in children array (will
5353 * be nPairs for objects) */
5454 bool isScalar ; /* Pseudo-array scalar value? */
55- JEntry * children ; /* JEntrys for child nodes */
55+ const JEntry * children ; /* JEntrys for child nodes */
5656 /* Data proper. This points to the beginning of the variable-length data */
5757 char * dataProper ;
5858
@@ -75,16 +75,16 @@ struct JsonbIterator
7575 struct JsonbIterator * parent ;
7676};
7777
78- static void fillJsonbValue (JsonbContainer * container , int index ,
78+ static void fillJsonbValue (const JsonbContainer * container , int index ,
7979 char * base_addr , uint32 offset ,
8080 JsonbValue * result );
81- static bool equalsJsonbScalarValue (JsonbValue * a , JsonbValue * b );
82- static int compareJsonbScalarValue (JsonbValue * a , JsonbValue * b );
83- static Jsonb * convertToJsonb (JsonbValue * val );
84- static void convertJsonbValue (StringInfo buffer , JEntry * header , JsonbValue * val , int level );
85- static void convertJsonbArray (StringInfo buffer , JEntry * header , JsonbValue * val , int level );
86- static void convertJsonbObject (StringInfo buffer , JEntry * header , JsonbValue * val , int level );
87- static void convertJsonbScalar (StringInfo buffer , JEntry * header , JsonbValue * scalarVal );
81+ static bool equalsJsonbScalarValue (const JsonbValue * a , const JsonbValue * b );
82+ static int compareJsonbScalarValue (const JsonbValue * a , const JsonbValue * b );
83+ static Jsonb * convertToJsonb (const JsonbValue * val );
84+ static void convertJsonbValue (StringInfo buffer , JEntry * header , const JsonbValue * val , int level );
85+ static void convertJsonbArray (StringInfo buffer , JEntry * header , const JsonbValue * val , int level );
86+ static void convertJsonbObject (StringInfo buffer , JEntry * header , const JsonbValue * val , int level );
87+ static void convertJsonbScalar (StringInfo buffer , JEntry * header , const JsonbValue * scalarVal );
8888
8989static int reserveFromBuffer (StringInfo buffer , int len );
9090static void appendToBuffer (StringInfo buffer , const char * data , int len );
@@ -94,19 +94,19 @@ static short padBufferToInt(StringInfo buffer);
9494static JsonbIterator * iteratorFromContainer (JsonbContainer * container , JsonbIterator * parent );
9595static JsonbIterator * freeAndGetParent (JsonbIterator * it );
9696static JsonbParseState * pushState (JsonbParseState * * pstate );
97- static void appendKey (JsonbParseState * pstate , JsonbValue * scalarVal );
98- static void appendValue (JsonbParseState * pstate , JsonbValue * scalarVal );
99- static void appendElement (JsonbParseState * pstate , JsonbValue * scalarVal );
97+ static void appendKey (JsonbParseState * pstate , const JsonbValue * scalarVal );
98+ static void appendValue (JsonbParseState * pstate , const JsonbValue * scalarVal );
99+ static void appendElement (JsonbParseState * pstate , const JsonbValue * scalarVal );
100100static int lengthCompareJsonbStringValue (const void * a , const void * b );
101101static int lengthCompareJsonbString (const char * val1 , int len1 ,
102102 const char * val2 , int len2 );
103103static int lengthCompareJsonbPair (const void * a , const void * b , void * arg );
104104static void uniqueifyJsonbObject (JsonbValue * object );
105105static JsonbValue * pushJsonbValueScalar (JsonbParseState * * pstate ,
106106 JsonbIteratorToken seq ,
107- JsonbValue * scalarVal );
107+ const JsonbValue * scalarVal );
108108static JsonbValue * pushSingleScalarJsonbValue (JsonbParseState * * pstate ,
109- JsonbValue * jbval );
109+ const JsonbValue * jbval );
110110
111111void
112112JsonbToJsonbValue (Jsonb * jsonb , JsonbValue * val )
@@ -371,10 +371,10 @@ compareJsonbContainers(JsonbContainer *a, JsonbContainer *b)
371371 * return NULL. Otherwise, return palloc()'d copy of value.
372372 */
373373JsonbValue *
374- findJsonbValueFromContainer (JsonbContainer * container , uint32 flags ,
374+ findJsonbValueFromContainer (const JsonbContainer * container , uint32 flags ,
375375 JsonbValue * key )
376376{
377- JEntry * children = container -> children ;
377+ const JEntry * children = container -> children ;
378378 int count = JsonContainerSize (container );
379379
380380 Assert ((flags & ~(JB_FARRAY | JB_FOBJECT )) == 0 );
@@ -425,10 +425,10 @@ findJsonbValueFromContainer(JsonbContainer *container, uint32 flags,
425425 * 'res' can be passed in as NULL, in which case it's newly palloc'ed here.
426426 */
427427JsonbValue *
428- getKeyJsonValueFromContainer (JsonbContainer * container ,
428+ getKeyJsonValueFromContainer (const JsonbContainer * container ,
429429 const char * keyVal , int keyLen , JsonbValue * res )
430430{
431- JEntry * children = container -> children ;
431+ const JEntry * children = container -> children ;
432432 int count = JsonContainerSize (container );
433433 char * baseAddr ;
434434 uint32 stopLow ,
@@ -532,7 +532,7 @@ getIthJsonbValueFromContainer(JsonbContainer *container, uint32 i)
532532 * expanded.
533533 */
534534static void
535- fillJsonbValue (JsonbContainer * container , int index ,
535+ fillJsonbValue (const JsonbContainer * container , int index ,
536536 char * base_addr , uint32 offset ,
537537 JsonbValue * result )
538538{
@@ -620,7 +620,7 @@ JsonbParseStateClone(JsonbParseState *state)
620620 */
621621JsonbValue *
622622pushJsonbValue (JsonbParseState * * pstate , JsonbIteratorToken seq ,
623- JsonbValue * jbval )
623+ const JsonbValue * jbval )
624624{
625625 JsonbIterator * it ;
626626 JsonbValue * res = NULL ;
@@ -694,7 +694,7 @@ pushJsonbValue(JsonbParseState **pstate, JsonbIteratorToken seq,
694694 */
695695static JsonbValue *
696696pushJsonbValueScalar (JsonbParseState * * pstate , JsonbIteratorToken seq ,
697- JsonbValue * scalarVal )
697+ const JsonbValue * scalarVal )
698698{
699699 JsonbValue * result = NULL ;
700700
@@ -779,7 +779,7 @@ pushJsonbValueScalar(JsonbParseState **pstate, JsonbIteratorToken seq,
779779}
780780
781781static JsonbValue *
782- pushSingleScalarJsonbValue (JsonbParseState * * pstate , JsonbValue * jbval )
782+ pushSingleScalarJsonbValue (JsonbParseState * * pstate , const JsonbValue * jbval )
783783{
784784 /* single root scalar */
785785 JsonbValue va ;
@@ -794,7 +794,7 @@ pushSingleScalarJsonbValue(JsonbParseState **pstate, JsonbValue *jbval)
794794}
795795
796796static JsonbValue *
797- pushNestedScalarJsonbValue (JsonbParseState * * pstate , JsonbValue * jbval ,
797+ pushNestedScalarJsonbValue (JsonbParseState * * pstate , const JsonbValue * jbval ,
798798 bool isKey )
799799{
800800 switch ((* pstate )-> contVal .type )
@@ -810,7 +810,8 @@ pushNestedScalarJsonbValue(JsonbParseState **pstate, JsonbValue *jbval,
810810}
811811
812812JsonbValue *
813- pushScalarJsonbValue (JsonbParseState * * pstate , JsonbValue * jbval , bool isKey )
813+ pushScalarJsonbValue (JsonbParseState * * pstate , const JsonbValue * jbval ,
814+ bool isKey )
814815{
815816 return * pstate == NULL
816817 ? pushSingleScalarJsonbValue (pstate , jbval )
@@ -834,7 +835,7 @@ pushState(JsonbParseState **pstate)
834835 * pushJsonbValue() worker: Append a pair key to state when generating a Jsonb
835836 */
836837static void
837- appendKey (JsonbParseState * pstate , JsonbValue * string )
838+ appendKey (JsonbParseState * pstate , const JsonbValue * string )
838839{
839840 JsonbValue * object = & pstate -> contVal ;
840841
@@ -863,7 +864,7 @@ appendKey(JsonbParseState *pstate, JsonbValue *string)
863864 * Jsonb
864865 */
865866static void
866- appendValue (JsonbParseState * pstate , JsonbValue * scalarVal )
867+ appendValue (JsonbParseState * pstate , const JsonbValue * scalarVal )
867868{
868869 JsonbValue * object = & pstate -> contVal ;
869870
@@ -876,7 +877,7 @@ appendValue(JsonbParseState *pstate, JsonbValue *scalarVal)
876877 * pushJsonbValue() worker: Append an element to state when generating a Jsonb
877878 */
878879static void
879- appendElement (JsonbParseState * pstate , JsonbValue * scalarVal )
880+ appendElement (JsonbParseState * pstate , const JsonbValue * scalarVal )
880881{
881882 JsonbValue * array = & pstate -> contVal ;
882883
@@ -1489,7 +1490,7 @@ JsonbHashScalarValueExtended(const JsonbValue *scalarVal, uint64 *hash,
14891490 * Are two scalar JsonbValues of the same type a and b equal?
14901491 */
14911492static bool
1492- equalsJsonbScalarValue (JsonbValue * aScalar , JsonbValue * bScalar )
1493+ equalsJsonbScalarValue (const JsonbValue * aScalar , const JsonbValue * bScalar )
14931494{
14941495 if (aScalar -> type == bScalar -> type )
14951496 {
@@ -1521,7 +1522,7 @@ equalsJsonbScalarValue(JsonbValue *aScalar, JsonbValue *bScalar)
15211522 * operators, where a lexical sort order is generally expected.
15221523 */
15231524static int
1524- compareJsonbScalarValue (JsonbValue * aScalar , JsonbValue * bScalar )
1525+ compareJsonbScalarValue (const JsonbValue * aScalar , const JsonbValue * bScalar )
15251526{
15261527 if (aScalar -> type == bScalar -> type )
15271528 {
@@ -1636,7 +1637,7 @@ padBufferToInt(StringInfo buffer)
16361637 * Given a JsonbValue, convert to Jsonb. The result is palloc'd.
16371638 */
16381639static Jsonb *
1639- convertToJsonb (JsonbValue * val )
1640+ convertToJsonb (const JsonbValue * val )
16401641{
16411642 StringInfoData buffer ;
16421643 JEntry jentry ;
@@ -1678,7 +1679,7 @@ convertToJsonb(JsonbValue *val)
16781679 * for debugging purposes.
16791680 */
16801681static void
1681- convertJsonbValue (StringInfo buffer , JEntry * header , JsonbValue * val , int level )
1682+ convertJsonbValue (StringInfo buffer , JEntry * header , const JsonbValue * val , int level )
16821683{
16831684 check_stack_depth ();
16841685
@@ -1703,7 +1704,7 @@ convertJsonbValue(StringInfo buffer, JEntry *header, JsonbValue *val, int level)
17031704}
17041705
17051706static void
1706- convertJsonbArray (StringInfo buffer , JEntry * pheader , JsonbValue * val , int level )
1707+ convertJsonbArray (StringInfo buffer , JEntry * pheader , const JsonbValue * val , int level )
17071708{
17081709 int base_offset ;
17091710 int jentry_offset ;
@@ -1787,7 +1788,7 @@ convertJsonbArray(StringInfo buffer, JEntry *pheader, JsonbValue *val, int level
17871788}
17881789
17891790static void
1790- convertJsonbObject (StringInfo buffer , JEntry * pheader , JsonbValue * val , int level )
1791+ convertJsonbObject (StringInfo buffer , JEntry * pheader , const JsonbValue * val , int level )
17911792{
17921793 int base_offset ;
17931794 int jentry_offset ;
@@ -1903,7 +1904,7 @@ convertJsonbObject(StringInfo buffer, JEntry *pheader, JsonbValue *val, int leve
19031904}
19041905
19051906static void
1906- convertJsonbScalar (StringInfo buffer , JEntry * jentry , JsonbValue * scalarVal )
1907+ convertJsonbScalar (StringInfo buffer , JEntry * jentry , const JsonbValue * scalarVal )
19071908{
19081909 int numlen ;
19091910 short padlen ;
0 commit comments