Original issue supplemented with text 'it might be better to...'
Finaly, it finished with couple of impl details:
If ft part of query is empty - assume it is full-scan
That path is totally ignored in case of http queries.
So, benching is necessary for the case:
a) bunch of full-scan percolates. Quite big, to assume different codepath (comparing to ft queries).
b) bunch of documents. Including field/attributes, indicating, that both pure full-scan approach to them work significantly faster, then FT + filtering. M.b. source of #1794, transformed into 'call pq' call would be enough.
c) create couple of PQ tables. Each of them sourced with pqs mentioned in a), but one is sphinxql-flavour, second is json-flavour.
d). Run b) documents with 'call pq' over both tables. Note the difference.
If there is difference (expected - into flavour of sql-flavoured pqs) - hypoteses is right, we need to implement same fix as for gitlab #308 for json queries.
If difference is statistically non-significant, or negative - it reveal, that original fix with predicate 'it might be better to...' is wrong, and it is better to roll-back original 'fixup' (as it actually fixup nothing, but provides more complex codeflow without real reason)
Original issue supplemented with text 'it might be better to...'
Finaly, it finished with couple of impl details:
So, benching is necessary for the case:
a) bunch of full-scan percolates. Quite big, to assume different codepath (comparing to ft queries). b) bunch of documents. Including field/attributes, indicating, that both pure full-scan approach to them work significantly faster, then FT + filtering. M.b. source of #1794, transformed into 'call pq' call would be enough.
c) create couple of PQ tables. Each of them sourced with pqs mentioned in a), but one is sphinxql-flavour, second is json-flavour. d). Run b) documents with 'call pq' over both tables. Note the difference.
If there is difference (expected - into flavour of sql-flavoured pqs) - hypoteses is right, we need to implement same fix as for gitlab #308 for json queries.
If difference is statistically non-significant, or negative - it reveal, that original fix with predicate 'it might be better to...' is wrong, and it is better to roll-back original 'fixup' (as it actually fixup nothing, but provides more complex codeflow without real reason)