@@ -387,7 +387,7 @@ static JsonPathStats
387
387
jsonStatsGetPathStats (JsonStats jsdata , Datum * path , int pathlen ,
388
388
float4 * nullfrac )
389
389
{
390
- JsonPathStats pstats = jsonStatsGetPathStatsStr (jsdata , "$" , 1 );
390
+ JsonPathStats pstats = jsonStatsGetPathStatsStr (jsdata , JSON_PATH_ROOT , JSON_PATH_ROOT_LEN );
391
391
Selectivity sel = 1.0 ;
392
392
393
393
for (int i = 0 ; pstats && i < pathlen ; i ++ )
@@ -862,7 +862,9 @@ static HeapTuple
862
862
jsonStatsGetArrayIndexStatsTuple (JsonStats jsdata , JsonStatType type , int32 index )
863
863
{
864
864
/* Extract statistics for root array elements */
865
- JsonPathStats pstats = jsonStatsGetPathStatsStr (jsdata , "$[*]" , 4 );
865
+ JsonPathStats pstats = jsonStatsGetPathStatsStr (jsdata ,
866
+ JSON_PATH_ROOT_ARRAY ,
867
+ JSON_PATH_ROOT_ARRAY_LEN );
866
868
Selectivity index_sel ;
867
869
868
870
if (!pstats )
@@ -1144,7 +1146,7 @@ jsonSelectivityContains(JsonStats stats, Jsonb *jb)
1144
1146
1145
1147
/* Initialize root path string */
1146
1148
initStringInfo (& pathstr );
1147
- appendStringInfo (& pathstr , "$" );
1149
+ appendStringInfo (& pathstr , JSON_PATH_ROOT );
1148
1150
1149
1151
/* Initialize root path entry */
1150
1152
root .parent = NULL ;
@@ -1299,6 +1301,7 @@ jsonSelectivityContains(JsonStats stats, Jsonb *jb)
1299
1301
static Selectivity
1300
1302
jsonSelectivityExists (JsonStats stats , Datum key )
1301
1303
{
1304
+ JsonPathStats rootstats ;
1302
1305
JsonPathStats arrstats ;
1303
1306
JsonbValue jbvkey ;
1304
1307
Datum jbkey ;
@@ -1314,10 +1317,12 @@ jsonSelectivityExists(JsonStats stats, Datum key)
1314
1317
1315
1318
keysel = jsonStatsGetPathFreq (stats , & key , 1 );
1316
1319
1317
- scalarsel = jsonSelectivity (jsonStatsGetPathStatsStr (stats , "$" , 1 ),
1318
- jbkey , JsonbEqOperator );
1320
+ rootstats = jsonStatsGetPathStatsStr (stats , JSON_PATH_ROOT ,
1321
+ JSON_PATH_ROOT_LEN );
1322
+ scalarsel = jsonSelectivity (rootstats , jbkey , JsonbEqOperator );
1319
1323
1320
- arrstats = jsonStatsGetPathStatsStr (stats , "$[*]" , 4 );
1324
+ arrstats = jsonStatsGetPathStatsStr (stats , JSON_PATH_ROOT_ARRAY ,
1325
+ JSON_PATH_ROOT_ARRAY_LEN );
1321
1326
arraysel = jsonSelectivity (arrstats , jbkey , JsonbEqOperator );
1322
1327
arraysel = 1.0 - pow (1.0 - arraysel ,
1323
1328
jsonPathStatsGetAvgArraySize (arrstats ));
0 commit comments