@@ -1078,6 +1078,225 @@ select 'a = /* noindex */ 5'::jsquery;
1078
1078
"a" = 5
1079
1079
(1 row)
1080
1080
1081
+ --extract entries for index scan
1082
+ SELECT gin_debug_query_path_value('!!!x(y(!(a=1) & !(b=2)) | !!(c=3)) & z = 5');
1083
+ gin_debug_query_path_value
1084
+ ----------------------------
1085
+ AND +
1086
+ z = 5 , entry 0 +
1087
+ OR +
1088
+ x.y.a = 1 , entry 1 +
1089
+ x.y.b = 2 , entry 2 +
1090
+
1091
+ (1 row)
1092
+
1093
+ SELECT gin_debug_query_path_value('!#(x=1) & !*(y=1) & !%(z=1) ');
1094
+ gin_debug_query_path_value
1095
+ ----------------------------
1096
+ NULL +
1097
+
1098
+ (1 row)
1099
+
1100
+ SELECT gin_debug_query_path_value('#(!x=1) & *(!y=1) & %(!z=1) ');
1101
+ gin_debug_query_path_value
1102
+ ----------------------------
1103
+ NULL +
1104
+
1105
+ (1 row)
1106
+
1107
+ SELECT gin_debug_query_path_value('!#(!x=1) & !*(!y=1) & !%(!z=1) ');
1108
+ gin_debug_query_path_value
1109
+ ----------------------------
1110
+ NULL +
1111
+
1112
+ (1 row)
1113
+
1114
+ SELECT gin_debug_query_path_value('#(x = "a" & y > 0 & y < 1 & z > 0)');
1115
+ gin_debug_query_path_value
1116
+ ----------------------------
1117
+ #.x = "a" , entry 0 +
1118
+
1119
+ (1 row)
1120
+
1121
+ SELECT gin_debug_query_path_value('#(x = "a" & y /*-- index */ >= 0 & y < 1 & z > 0)');
1122
+ gin_debug_query_path_value
1123
+ -----------------------------
1124
+ AND +
1125
+ #.x = "a" , entry 0 +
1126
+ #.y >= 0 , < 1 , entry 1 +
1127
+
1128
+ (1 row)
1129
+
1130
+ SELECT gin_debug_query_path_value('#(x /*-- noindex */ = "a" & y > 0 & y <= 1 & z /*-- index */ > 0)');
1131
+ gin_debug_query_path_value
1132
+ -----------------------------
1133
+ AND +
1134
+ #.y > 0 , <= 1 , entry 0 +
1135
+ #.z > 0 , entry 1 +
1136
+
1137
+ (1 row)
1138
+
1139
+ SELECT gin_debug_query_path_value('x = 1 & (y /*-- index */ > 0 & y < 1 | z > 0)');
1140
+ gin_debug_query_path_value
1141
+ ----------------------------
1142
+ AND +
1143
+ x = 1 , entry 0 +
1144
+ OR +
1145
+ y > 0 , < 1 , entry 1 +
1146
+ z > 0 , entry 2 +
1147
+
1148
+ (1 row)
1149
+
1150
+ SELECT gin_debug_query_path_value('%.x = 1');
1151
+ gin_debug_query_path_value
1152
+ ----------------------------
1153
+ NULL +
1154
+
1155
+ (1 row)
1156
+
1157
+ SELECT gin_debug_query_path_value('*.x = "b"');
1158
+ gin_debug_query_path_value
1159
+ ----------------------------
1160
+ NULL +
1161
+
1162
+ (1 row)
1163
+
1164
+ SELECT gin_debug_query_path_value('x && [1,2,3]');
1165
+ gin_debug_query_path_value
1166
+ ----------------------------
1167
+ OR +
1168
+ x.# = 1 , entry 0 +
1169
+ x.# = 2 , entry 1 +
1170
+ x.# = 3 , entry 2 +
1171
+
1172
+ (1 row)
1173
+
1174
+ SELECT gin_debug_query_path_value('x @> [1,2,3]');
1175
+ gin_debug_query_path_value
1176
+ ----------------------------
1177
+ AND +
1178
+ x.# = 1 , entry 0 +
1179
+ x.# = 2 , entry 1 +
1180
+ x.# = 3 , entry 2 +
1181
+
1182
+ (1 row)
1183
+
1184
+ SELECT gin_debug_query_path_value('x <@ [1,2,3]');
1185
+ gin_debug_query_path_value
1186
+ ----------------------------
1187
+ NULL +
1188
+
1189
+ (1 row)
1190
+
1191
+ SELECT gin_debug_query_value_path('!!!x(y(!(a=1) & !(b=2)) | !!(c=3)) & z = 5');
1192
+ gin_debug_query_value_path
1193
+ ----------------------------
1194
+ AND +
1195
+ z = 5 , entry 0 +
1196
+ OR +
1197
+ x.y.a = 1 , entry 1 +
1198
+ x.y.b = 2 , entry 2 +
1199
+
1200
+ (1 row)
1201
+
1202
+ SELECT gin_debug_query_value_path('!#(x=1) & !*(y=1) & !%(z=1) ');
1203
+ gin_debug_query_value_path
1204
+ ----------------------------
1205
+ NULL +
1206
+
1207
+ (1 row)
1208
+
1209
+ SELECT gin_debug_query_value_path('#(!x=1) & *(!y=1) & %(!z=1) ');
1210
+ gin_debug_query_value_path
1211
+ ----------------------------
1212
+ NULL +
1213
+
1214
+ (1 row)
1215
+
1216
+ SELECT gin_debug_query_value_path('!#(!x=1) & !*(!y=1) & !%(!z=1) ');
1217
+ gin_debug_query_value_path
1218
+ ----------------------------
1219
+ NULL +
1220
+
1221
+ (1 row)
1222
+
1223
+ SELECT gin_debug_query_value_path('#(x = "a" & y > 0 & y < 1 & z > 0)');
1224
+ gin_debug_query_value_path
1225
+ ----------------------------
1226
+ #.x = "a" , entry 0 +
1227
+
1228
+ (1 row)
1229
+
1230
+ SELECT gin_debug_query_value_path('#(x = "a" & y /*-- index */ >= 0 & y < 1 & z > 0)');
1231
+ gin_debug_query_value_path
1232
+ -----------------------------
1233
+ AND +
1234
+ #.x = "a" , entry 0 +
1235
+ #.y >= 0 , < 1 , entry 1 +
1236
+
1237
+ (1 row)
1238
+
1239
+ SELECT gin_debug_query_value_path('#(x /*-- noindex */ = "a" & y > 0 & y <= 1 & z /*-- index */ > 0)');
1240
+ gin_debug_query_value_path
1241
+ -----------------------------
1242
+ AND +
1243
+ #.y > 0 , <= 1 , entry 0 +
1244
+ #.z > 0 , entry 1 +
1245
+
1246
+ (1 row)
1247
+
1248
+ SELECT gin_debug_query_value_path('x = 1 & (y /*-- index */ > 0 & y < 1 | z > 0)');
1249
+ gin_debug_query_value_path
1250
+ ----------------------------
1251
+ AND +
1252
+ x = 1 , entry 0 +
1253
+ OR +
1254
+ y > 0 , < 1 , entry 1 +
1255
+ z > 0 , entry 2 +
1256
+
1257
+ (1 row)
1258
+
1259
+ SELECT gin_debug_query_value_path('%.x = 1');
1260
+ gin_debug_query_value_path
1261
+ ----------------------------
1262
+ %.x = 1 , entry 0 +
1263
+
1264
+ (1 row)
1265
+
1266
+ SELECT gin_debug_query_value_path('*.x = "b"');
1267
+ gin_debug_query_value_path
1268
+ ----------------------------
1269
+ *.x = "b" , entry 0 +
1270
+
1271
+ (1 row)
1272
+
1273
+ SELECT gin_debug_query_value_path('x && [1,2,3]');
1274
+ gin_debug_query_value_path
1275
+ ----------------------------
1276
+ OR +
1277
+ x.# = 1 , entry 0 +
1278
+ x.# = 2 , entry 1 +
1279
+ x.# = 3 , entry 2 +
1280
+
1281
+ (1 row)
1282
+
1283
+ SELECT gin_debug_query_value_path('x @> [1,2,3]');
1284
+ gin_debug_query_value_path
1285
+ ----------------------------
1286
+ AND +
1287
+ x.# = 1 , entry 0 +
1288
+ x.# = 2 , entry 1 +
1289
+ x.# = 3 , entry 2 +
1290
+
1291
+ (1 row)
1292
+
1293
+ SELECT gin_debug_query_value_path('x <@ [1,2,3]');
1294
+ gin_debug_query_value_path
1295
+ ----------------------------
1296
+ NULL +
1297
+
1298
+ (1 row)
1299
+
1081
1300
---table and index
1082
1301
select count(*) from test_jsquery where (v->>'review_helpful_votes')::int4 > 0;
1083
1302
count
0 commit comments