On 25-2-2017 01:55, Leyne, Sean wrote:
>>    MSSQL implements timeouts at client side:

 From a quick glance, in the ms-sql JDBC driver, the (client side) query 
timeout is applied for waiting for a response from the server for an 
execute, fetch, etc. Each action has its own the timeout timer, so each 
action has the full timeout duration.

>>    Server-side statement timeouts implemented in MySQL:
>
>>    PostgreSQL docs is very limited:

The pgjdbc driver has a client side timeout which only seems to cover 
the initial execute and row fetch. Depending on the configuration and 
transaction auto-commit status, that can be the whole result set, or 
just the first (fetchSize) rows. Subsequent fetches are not covered by 
this timeout.

> Do you/anyone know if these engines return full results sets or follow the 
> "page set" approach?

As far as I know Oracle[1], PostgreSQL[2], SQL Server[3] support it. I 
believe MySQL does as well. Don't know about other database systems, but 
I assume most of them will support this (the SQL CLI standard also 
defines it).

Side note: the way Firebird implements fetch is not a 'page set', but a 
row set, because a fetch contains complete rows, while the term page is 
usually reserved for a fixed amount of bytes.

[1]: https://oracle.github.io/odpi/doc/public_functions/dpiStmt.html 
(see dpiStmt_fetchRows)
[2]: 
https://www.postgresql.org/docs/9.6/static/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY
 
(search for "Once a portal exists, it can be executed using an Execute 
message.")
[3]: 
https://github.com/Microsoft/mssql-jdbc/blob/master/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerResultSet.java#L1005

Mark
-- 
Mark Rotteveel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to