[dovecot/core] 734965: lib-sql: Add API support for asynchronously iterat...

GitHub noreply at github.com
Tue Jul 18 15:30:12 EEST 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: 73496508667cf59ac1e6fd1b80fbc6caff3bd33e
      https://github.com/dovecot/core/commit/73496508667cf59ac1e6fd1b80fbc6caff3bd33e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-18 (Tue, 18 Jul 2017)

  Changed paths:
    M src/lib-sql/driver-cassandra.c
    M src/lib-sql/driver-mysql.c
    M src/lib-sql/driver-pgsql.c
    M src/lib-sql/driver-sqlite.c
    M src/lib-sql/sql-api-private.h
    M src/lib-sql/sql-api.c
    M src/lib-sql/sql-api.h

  Log Message:
  -----------
  lib-sql: Add API support for asynchronously iterating over rows.

sql_query() can already do an async lookup, but the full result needs
to be available immediately. This can be inefficient for large results.
Add a new SQL_RESULT_NEXT_MORE return value and sql_result_more() for
asynchronously requesting more results.

This changes the API a bit, but isn't done by default by any drivers yet.
Also callers that can't handle this are hopefully checking for "ret < 0",
which allows them to handle such an async-more request as an error
instead.

sql_result_next_row() will be changed to return enum in a separate commit to
keep backwards compatibility in v2.2.x.


  Commit: bb97e85f9f1caa7a1083755562208b186b0ae747
      https://github.com/dovecot/core/commit/bb97e85f9f1caa7a1083755562208b186b0ae747
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-18 (Tue, 18 Jul 2017)

  Changed paths:
    M src/lib-dict/dict-sql.c

  Log Message:
  -----------
  dict-sql: Add support for sql_result_more()


  Commit: 00bdefb1db3cd0bf65c517fafe19a9b351ce5272
      https://github.com/dovecot/core/commit/00bdefb1db3cd0bf65c517fafe19a9b351ce5272
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-18 (Tue, 18 Jul 2017)

  Changed paths:
    M src/lib-sql/driver-cassandra.c

  Log Message:
  -----------
  cassandra: Add wrapper functions in preparation for following commits

No functional changes. Shrinks the following commits.


  Commit: 755feaf20661b02f06224bd4ec2a96894f4e6af6
      https://github.com/dovecot/core/commit/755feaf20661b02f06224bd4ec2a96894f4e6af6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-18 (Tue, 18 Jul 2017)

  Changed paths:
    M src/lib-sql/driver-cassandra.c

  Log Message:
  -----------
  cassandra: Add page_size setting to enable paged results for queries


  Commit: 92a4803764b95ed89cefe4e254734e8674ce2251
      https://github.com/dovecot/core/commit/92a4803764b95ed89cefe4e254734e8674ce2251
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-07-18 (Tue, 18 Jul 2017)

  Changed paths:
    M src/lib-sql/driver-cassandra.c

  Log Message:
  -----------
  cassandra: Improve logging for multipage queries

warn_timeout is applied to both individual page requests as well as the sum
of all the page requests.


Compare: https://github.com/dovecot/core/compare/1644711612eb...92a4803764b9


More information about the dovecot-cvs mailing list