[dovecot/core] c4cd55: lib-sql: Explicitly specify used *_vfuncs methods ...

GitHub noreply at github.com
Wed Sep 27 14:00:15 EEST 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: c4cd55ca3a9d433dd70548e34137c2ba04e56b96
      https://github.com/dovecot/core/commit/c4cd55ca3a9d433dd70548e34137c2ba04e56b96
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 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/driver-sqlpool.c
    A src/lib-sql/driver-test.c

  Log Message:
  -----------
  lib-sql: Explicitly specify used *_vfuncs methods for drivers.

This allows adding more methods without modifying all the existing drivers.


  Commit: 6ebfc2ec5ac544b5532429147b6e4e6ce9246eb0
      https://github.com/dovecot/core/commit/6ebfc2ec5ac544b5532429147b6e4e6ce9246eb0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

  Changed paths:
    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 support for prepared SQL statements.

This initial implementation doesn't use prepared statements in drivers, but
simply generates the query string internally.


  Commit: c90266497bd04d48900df858673adceb66c6fad3
      https://github.com/dovecot/core/commit/c90266497bd04d48900df858673adceb66c6fad3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Change "uint" type to mean 64bit instead of 32bit integer.

This is likely what is usually wanted (especially in e.g. quotas).
If someone actually wants it to be restricted to 32bit, we could add
uint32 later on.


  Commit: a8bff174c9ea78c603cdb68e5b766bb31ee1a95e
      https://github.com/dovecot/core/commit/a8bff174c9ea78c603cdb68e5b766bb31ee1a95e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

  Changed paths:
    M src/lib-dict/dict-memcached-ascii.c
    M src/lib-dict/dict-memcached.c
    M src/lib-dict/dict-redis.c
    M src/lib-dict/dict-sql.c
    M src/lib-dict/dict.c
    M src/plugins/dict-ldap/dict-ldap.c

  Log Message:
  -----------
  lib-dict: Moved/removed explicit stack frames in dict drivers.

Added them back to dict_set/unset/atomic_inc() in dict.c. Others are
unlikely to be called many times.


  Commit: 80b78400bf4d70fbba280ab0a9aa28e6425628ba
      https://github.com/dovecot/core/commit/80b78400bf4d70fbba280ab0a9aa28e6425628ba
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Remove dict_sql_build_query.inc

It's no longer useful with the current code.


  Commit: f6334b9c9de17b424b0cd16e1bf9e7cb3d5f79f8
      https://github.com/dovecot/core/commit/f6334b9c9de17b424b0cd16e1bf9e7cb3d5f79f8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Initial change to use sql_statement API

sql_statement_bind_*() will be followed by later changes.


  Commit: 9b762025a544923f6597813eb2983bd5be8cb112
      https://github.com/dovecot/core/commit/9b762025a544923f6597813eb2983bd5be8cb112
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Use sql_statement_set_timestamp() instead of adding it to query


  Commit: 99c5459505ac3eea5d955d604b00c5582ee4bd0a
      https://github.com/dovecot/core/commit/99c5459505ac3eea5d955d604b00c5582ee4bd0a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Add signed "int" type


  Commit: fa7369ee9759017a2751691d13126ce454e3677c
      https://github.com/dovecot/core/commit/fa7369ee9759017a2751691d13126ce454e3677c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Use sql_statement_bind_*()


  Commit: 98d322947c4aadece45d8c561b824255b777901b
      https://github.com/dovecot/core/commit/98d322947c4aadece45d8c561b824255b777901b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Cleanup - Remove unnecessary code

The values are explicitly added to params. sql_dict_update_query() doesn't
add them again. Since the "diff" parameter is already a long long type,
this avoids unnecessary conversion to string and back.


  Commit: 1b47042298f56d6b2a6b4d5cf5a68930e1c3a964
      https://github.com/dovecot/core/commit/1b47042298f56d6b2a6b4d5cf5a68930e1c3a964
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Cleanup - change query generator functions to return statement

Instead of query+params. This is in preparation for the following changes.


  Commit: 727f9016919f6793b86315cd164c6febb09bf2d8
      https://github.com/dovecot/core/commit/727f9016919f6793b86315cd164c6febb09bf2d8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc


  Commit: 4ea91541fd811dd726d1e285f8b0f16a8ec5e5c6
      https://github.com/dovecot/core/commit/4ea91541fd811dd726d1e285f8b0f16a8ec5e5c6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  dict-sql: Use prepared statements

Create a hash table of query template -> prepared statement and fill it out
as needed. This could have been done some alternative ways that wouldn't
require building the string first, but this should still be fast enough and
much easier to implement.


  Commit: c5a23ba5ec920f32d61cc0b2b6270a8f8700ba19
      https://github.com/dovecot/core/commit/c5a23ba5ec920f32d61cc0b2b6270a8f8700ba19
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: sql_transaction_commit_s() - Don't allow multi-query transactions

They were already denied for asynchronous commits. Also the synchronous
commits aren't actually used anywhere, so this shouldn't break anything.


  Commit: f1f0d80ad6c7029bb93d618e97d40bcd4bea76af
      https://github.com/dovecot/core/commit/f1f0d80ad6c7029bb93d618e97d40bcd4bea76af
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: sql_transaction_commit_s() - Set query_type correctly

The queries were all sent with READ type instead of WRITE/DELETE. This
meant they were using potentially wrong consistency values. Although
synchronous commits aren't actually used anywhere, so this practically
this doesn't fix anything right now.


  Commit: 6679cc8ff663849dd41ef524a4aeea94b9c05455
      https://github.com/dovecot/core/commit/6679cc8ff663849dd41ef524a4aeea94b9c05455
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: sql_transaction_commit*() cleanup - handle multiple query failures earlier

This makes the handling same for the sync and async method. It also
simplifies code for the following commits.


  Commit: 424b15e8d13013ca9b3966d09303cf8efea9b9d6
      https://github.com/dovecot/core/commit/424b15e8d13013ca9b3966d09303cf8efea9b9d6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: Cleanup - Create statement earlier

Simplifies the following changes


  Commit: f90f6a287acb134e11b01e46fa772f1917cbfb0e
      https://github.com/dovecot/core/commit/f90f6a287acb134e11b01e46fa772f1917cbfb0e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: Add support for prepared statements


  Commit: fbe89fbf9cb27665556bc948a08741acce95f8e8
      https://github.com/dovecot/core/commit/fbe89fbf9cb27665556bc948a08741acce95f8e8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: Disable prepared statements with protocol v3 and older


  Commit: 65ffbfb571092bd5a5dc4b116ab186da5804b657
      https://github.com/dovecot/core/commit/65ffbfb571092bd5a5dc4b116ab186da5804b657
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: Fix paged queries to work again

When continuing the result, consistency was reset to 0 (=ANY), which caused
the queries to fail. There's no need to initialize the statement again when
continuing it. Also set result->consistency to be correct mainly for
debugging purposes.


  Commit: 8cd3ade635cb96469cc2047e311ae31c82974893
      https://github.com/dovecot/core/commit/8cd3ade635cb96469cc2047e311ae31c82974893
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-09-27 (Wed, 27 Sep 2017)

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

  Log Message:
  -----------
  cassandra: Timestamp should be in microseconds, not milliseconds


Compare: https://github.com/dovecot/core/compare/f46b4fbb830e...8cd3ade635cb


More information about the dovecot-cvs mailing list