Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit d7973dc

Browse files
author
Nikita Glukhov
committed
Add JsonStatsFloat4 JsonStatType
1 parent 83ddf93 commit d7973dc

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/backend/utils/adt/jsonb_selfuncs.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,11 @@ jsonStatsConvertArray(Datum jsonbValueArray, JsonStatType type, Oid typid,
554554
break;
555555

556556
case JsonStatNumeric:
557+
Assert(jbv.type == jbvNumeric);
558+
value = NumericGetDatum(jbv.val.numeric);
559+
break;
560+
561+
case JsonStatFloat4:
557562
Assert(jbv.type == jbvNumeric);
558563
value = DirectFunctionCall1(numeric_float4,
559564
NumericGetDatum(jbv.val.numeric));
@@ -638,6 +643,7 @@ jsonPathStatsExtractData(JsonPathStats pstats, JsonStatType stattype,
638643
eqop = NumericEqOperator;
639644
ltop = NumericLtOperator;
640645
break;
646+
case JsonStatFloat4: /* special internal stats type */
641647
default:
642648
elog(ERROR, "invalid json statistic type %d", stattype);
643649
break;
@@ -666,7 +672,7 @@ jsonPathStatsExtractData(JsonPathStats pstats, JsonStatType stattype,
666672
slot->kind = STATISTIC_KIND_MCV;
667673
slot->opid = eqop;
668674
slot->numbers = jsonStatsConvertArray(jsonGetField(mcv, "numbers"),
669-
JsonStatNumeric, FLOAT4OID,
675+
JsonStatFloat4, FLOAT4OID,
670676
1.0 - nullfrac);
671677
slot->values = jsonStatsConvertArray(jsonGetField(mcv, "values"),
672678
stattype, type, 0);
@@ -678,7 +684,7 @@ jsonPathStatsExtractData(JsonPathStats pstats, JsonStatType stattype,
678684
slot->kind = STATISTIC_KIND_HISTOGRAM;
679685
slot->opid = ltop;
680686
slot->numbers = jsonStatsConvertArray(jsonGetField(hst, "numbers"),
681-
JsonStatNumeric, FLOAT4OID, 1.0);
687+
JsonStatFloat4, FLOAT4OID, 1.0);
682688
slot->values = jsonStatsConvertArray(jsonGetField(hst, "values"),
683689
stattype, type, 0);
684690
slot++;

src/include/utils/json_selfuncs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ typedef enum JsonStatType
6161
JsonStatJsonb,
6262
JsonStatJsonbWithoutSubpaths,
6363
JsonStatText,
64+
JsonStatFloat4,
6465
JsonStatString,
6566
JsonStatNumeric,
6667
JsonStatFreq,

0 commit comments

Comments
 (0)