@@ -129,9 +129,10 @@ typedef struct JsonValueStats
129
129
{
130
130
JsonScalarStats jsons ; /* stats for all JSON types together */
131
131
132
- /* XXX used only with JSON_ANALYZE_SCALARS defined */
132
+ #ifdef JSON_ANALYZE_SCALARS /* XXX */
133
133
JsonScalarStats strings ; /* stats for JSON strings */
134
134
JsonScalarStats numerics ; /* stats for JSON numerics */
135
+ #endif
135
136
136
137
/* stats for booleans */
137
138
struct
@@ -143,6 +144,8 @@ typedef struct JsonValueStats
143
144
int nnulls ; /* number of JSON null values */
144
145
int nobjects ; /* number of JSON objects */
145
146
int narrays ; /* number of JSON arrays */
147
+ int nstrings ; /* number of JSON strings */
148
+ int nnumerics ; /* number of JSON numerics */
146
149
147
150
JsonScalarStats lens ; /* stats of object lengths */
148
151
JsonScalarStats arrlens ; /* stats of array lengths */
@@ -378,6 +381,7 @@ jsonAnalyzeJsonValue(JsonAnalyzeContext *ctx, JsonValueStats *vstats,
378
381
break ;
379
382
380
383
case jbvString :
384
+ vstats -> nstrings ++ ;
381
385
#ifdef JSON_ANALYZE_SCALARS
382
386
value = PointerGetDatum (
383
387
cstring_to_text_with_len (jv -> val .string .val ,
@@ -387,6 +391,7 @@ jsonAnalyzeJsonValue(JsonAnalyzeContext *ctx, JsonValueStats *vstats,
387
391
break ;
388
392
389
393
case jbvNumeric :
394
+ vstats -> nnumerics ++ ;
390
395
#ifdef JSON_ANALYZE_SCALARS
391
396
value = PointerGetDatum (jv -> val .numeric );
392
397
JsonValuesAppend (& vstats -> numerics .values , value , ctx -> target );
@@ -804,11 +809,11 @@ jsonAnalyzeBuildPathStats(JsonPathAnlStats *pstats)
804
809
vstats -> jsons .values .count );
805
810
806
811
pushJsonbKeyValueFloat (& ps , & val , "freq_string" ,
807
- freq * vstats -> strings . values . count /
812
+ freq * vstats -> nstrings /
808
813
vstats -> jsons .values .count );
809
814
810
815
pushJsonbKeyValueFloat (& ps , & val , "freq_numeric" ,
811
- freq * vstats -> numerics . values . count /
816
+ freq * vstats -> nnumerics /
812
817
vstats -> jsons .values .count );
813
818
814
819
pushJsonbKeyValueFloat (& ps , & val , "freq_array" ,
0 commit comments