Hi Bram, hi Christian,

I am surprised, I would have expected you to point to the upcoming websocket implementation (see https://github.com/BaseXdb/basex/issues/1449)?
To me the scenario described by Bram seems like a perfect fit for websockets, where you simply subscribe to such a generator and the server then delivers the results by notifying every subscriber.

Cheers
Dirk


Senacor Technologies Aktiengesellschaft - Sitz: Eschborn - Amtsgericht Frankfurt am Main - Reg.-Nr.: HRB 105546
Vorstand: Matthias Tomann, Marcus Purzer - Aufsichtsratsvorsitzender: Daniel Grözinger

On 19. Apr 2018, at 23:01, Christian Grün <christian.gruen@gmail.com> wrote:

Hi Bram,

There is no comparable feature in BaseX right now. But maybe it’s
already helpful for you to know that all server-side results will
always be streamed to the output stream of the HTTP response. As a
result, it can easily happen that the client has received the first 10
results while the server is still evaluating your query.

If you want to have more control, you can define a result window via
variables (e.g. $start and $length). Usually, if your query succeeds
in quickly delivering the result 1-10, it shouldn’t take much longer
to deliver result 11-20, 21-30, etc., so you can send multiple
iterative requests to the server to receive the subsequent results.

Best,
Christian


On Thu, Apr 19, 2018 at 11:02 AM, Bram Vanroy <Bram.Vanroy@ugent.be> wrote:
Dear list



I am curious to find out whether it is possible to stream results of a
query, i.e. where a submitted query behaves as a generator. Especially for
web interfaces this is useful: a user is presented with a result as soon as
it is found, and doesn’t have to wait for all results to be gathered.
Especially useful with large databases of course.



Preferably a way that works with the nodejs, PHP client but I am open to
other suggestions.





Thanks in advance



Bram