History log of /dovecot/src/lib-sql/sql-api.h
Revision Date Author Comments Expand
0b307ab3d0c48074b367f573d239e9db8b76a2ca 06-Oct-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-sql: Add comments about NULL values.

e3a3366eea09eb2ee25ad546cc88dfdee9715dcb 21-Sep-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-sql: Fix compiler warning with OSX

9f0fc74e3387d3e496fb0c8f77633e27e48cc1ff 08-Sep-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

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.

402f9bcf48cbccc17fdb5f3ea411a7967aed0fd0 17-Jul-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

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.

bb2b3656ef7635acc374f7fc19b25aeeb454ae95 17-Jul-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-sql: Added error_type to commit callback.

1601169d6f6004e0656238ed7691c16f3aab61aa 17-Jul-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-sql: Added sql_result_get_error_type(). For now the only special error type is SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN.

b87761f9bbef949f31dae297e619ac3f5e9c2b2e 02-Sep-2015 Timo Sirainen <tss@iki.fi>

lib-sql: Implemented sql_escape_blob()

27a44fcfd8d19bffe0f267f20a2b5d3fe7600fdd 19-Aug-2012 Timo Sirainen <tss@iki.fi>

Removed CONTEXT_TYPE_SAFETY macro and reimplemented its functionality better. gcc/clang now gives a compiler error in many places if callback isn't exactly what was expected. It's also now much easier to add more of these checks.

/dovecot/src/anvil/anvil-connection.c /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/db-dict.c /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-sql.c /dovecot/src/config/config-connection.c /dovecot/src/doveadm/doveadm-mail-mailbox.c /dovecot/src/doveadm/doveadm-stats.c /dovecot/src/doveadm/doveadm.c /dovecot/src/imap/imap-fetch.h /dovecot/src/indexer/indexer-client.c /dovecot/src/lib-dns/dns-lookup.c /dovecot/src/lib-dns/dns-lookup.h /dovecot/src/lib-imap-storage/imap-msgpart.c /dovecot/src/lib-index/mail-index-util.c /dovecot/src/lib-lda/mail-send.c /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-mail/test-istream-header-filter.c /dovecot/src/lib-master/master-service.c /dovecot/src/lib-settings/settings.c /dovecot/src/lib-settings/settings.h sql-api.h /dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c /dovecot/src/lib-storage/index/imapc/imapc-mail-fetch.c /dovecot/src/lib-storage/index/index-mail-binary.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/index-sort-string.c /dovecot/src/lib-storage/index/index-thread.c /dovecot/src/lib-storage/index/maildir/maildir-mail.c /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync-index.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/index/pop3c/pop3c-sync.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mailbox-header.c /dovecot/src/lib/array.h /dovecot/src/lib/bsearch-insert-pos.c /dovecot/src/lib/bsearch-insert-pos.h /dovecot/src/lib/child-wait.h /dovecot/src/lib/connection.c /dovecot/src/lib/ioloop.h /dovecot/src/lib/istream.h /dovecot/src/lib/macros.h /dovecot/src/lib/module-dir.c /dovecot/src/lib/ostream.h /dovecot/src/lib/strfuncs.c /dovecot/src/lib/strfuncs.h /dovecot/src/lib/test-bsearch-insert-pos.c /dovecot/src/plugins/acl/acl-backend.c /dovecot/src/plugins/fts-squat/squat-uidlist.c /dovecot/src/plugins/pop3-migration/pop3-migration-plugin.c
9349a0afffad990e45d3ad33081e1d2d9e68a753 23-Aug-2010 Timo Sirainen <tss@iki.fi>

lib-sql: sql_disconnect() now aborts all pending requests.

6b2738c39a868ff9291867138c55029fc40cf105 04-May-2010 Timo Sirainen <tss@iki.fi>

lib-sql: Use generic sql connection pooling code for mysql/pgsql. It's possible to give multiple host settings to do load balancing / HA. If one host is down, another one is tried. All queries are automatically retried in another host if they fail in first one. Since PostgreSQL support async queries, Dovecot can create multiple connections to the database as needed, so it can do lookups in parallel. The number of connections can be changed with maxconns=n in connect_query, the default is 5. --HG-- branch : HEAD

bfdf0fd7b6186f64cbdcbf1cb2bf9c42a9007b77 07-Sep-2009 Timo Sirainen <tss@iki.fi>

lib-sql: Added sql_update_get_rows(). --HG-- branch : HEAD

3656c91dcb8336814bebd4500e81c3dde25233e6 13-May-2009 Timo Sirainen <tss@iki.fi>

SQL API change: SQL results can be now refed/unrefed. --HG-- branch : HEAD

c25356d5978632df6203437e1953bcb29e0c736f 16-Sep-2007 Timo Sirainen <tss@iki.fi>

Changed .h ifdef/defines to use <NAME>_H format. --HG-- branch : HEAD

/dovecot/src/auth/auth-cache.h /dovecot/src/auth/auth-client-connection.h /dovecot/src/auth/auth-client-interface.h /dovecot/src/auth/auth-master-connection.h /dovecot/src/auth/auth-master-interface.h /dovecot/src/auth/auth-master-listener.h /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-stream.h /dovecot/src/auth/auth-worker-client.h /dovecot/src/auth/auth-worker-server.h /dovecot/src/auth/auth.h /dovecot/src/auth/common.h /dovecot/src/auth/db-ldap.h /dovecot/src/auth/db-passwd-file.h /dovecot/src/auth/db-sql.h /dovecot/src/auth/mech.h /dovecot/src/auth/mycrypt.h /dovecot/src/auth/otp-skey-common.h /dovecot/src/auth/passdb-blocking.h /dovecot/src/auth/passdb-cache.h /dovecot/src/auth/passdb.h /dovecot/src/auth/password-scheme.h /dovecot/src/auth/plain-common.h /dovecot/src/auth/userdb-blocking.h /dovecot/src/auth/userdb-static.h /dovecot/src/auth/userdb-vpopmail.h /dovecot/src/auth/userdb.h /dovecot/src/deliver/auth-client.h /dovecot/src/deliver/deliver.h /dovecot/src/deliver/duplicate.h /dovecot/src/deliver/mail-send.h /dovecot/src/deliver/smtp-client.h /dovecot/src/dict/dict-cache.h /dovecot/src/dict/dict-server.h /dovecot/src/imap-login/client-authenticate.h /dovecot/src/imap-login/client.h /dovecot/src/imap-login/imap-proxy.h /dovecot/src/imap/client.h /dovecot/src/imap/commands-util.h /dovecot/src/imap/commands.h /dovecot/src/imap/common.h /dovecot/src/imap/imap-expunge.h /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-messageset.h /dovecot/src/imap/imap-search.h /dovecot/src/imap/imap-sort.h /dovecot/src/imap/imap-status.h /dovecot/src/imap/imap-sync.h /dovecot/src/imap/imap-thread.h /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-auth/auth-server-request.h /dovecot/src/lib-charset/charset-utf8.h /dovecot/src/lib-dict/dict-client.h /dovecot/src/lib-dict/dict-private.h /dovecot/src/lib-dict/dict-sql.h /dovecot/src/lib-dict/dict.h /dovecot/src/lib-imap/imap-base-subject.h /dovecot/src/lib-imap/imap-bodystructure.h /dovecot/src/lib-imap/imap-date.h /dovecot/src/lib-imap/imap-envelope.h /dovecot/src/lib-imap/imap-match.h /dovecot/src/lib-imap/imap-parser.h /dovecot/src/lib-imap/imap-quote.h /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-index/mail-hash.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-private.h /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/mailbox-list-index-private.h /dovecot/src/lib-index/mailbox-list-index.h /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/mail-types.h /dovecot/src/lib-mail/message-address.h /dovecot/src/lib-mail/message-date.h /dovecot/src/lib-mail/message-decoder.h /dovecot/src/lib-mail/message-header-decode.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-id.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-mail/message-part-serialize.h /dovecot/src/lib-mail/message-search.h /dovecot/src/lib-mail/message-send.h /dovecot/src/lib-mail/message-size.h /dovecot/src/lib-mail/quoted-printable.h /dovecot/src/lib-mail/rfc822-parser.h /dovecot/src/lib-ntlm/ntlm-byteorder.h /dovecot/src/lib-ntlm/ntlm-des.h /dovecot/src/lib-ntlm/ntlm-encrypt.h /dovecot/src/lib-ntlm/ntlm-flags.h /dovecot/src/lib-ntlm/ntlm-message.h /dovecot/src/lib-ntlm/ntlm-types.h /dovecot/src/lib-ntlm/ntlm.h /dovecot/src/lib-otp/otp-dictionary.h /dovecot/src/lib-otp/otp-hash.h /dovecot/src/lib-otp/otp-parity.h /dovecot/src/lib-otp/otp-parse.h /dovecot/src/lib-otp/otp.h /dovecot/src/lib-settings/settings.h sql-api-private.h sql-api.h /dovecot/src/lib-storage/index/cydir/cydir-storage.h /dovecot/src/lib-storage/index/cydir/cydir-sync.h /dovecot/src/lib-storage/index/dbox/dbox-file.h /dovecot/src/lib-storage/index/dbox/dbox-index.h /dovecot/src/lib-storage/index/dbox/dbox-storage.h /dovecot/src/lib-storage/index/dbox/dbox-sync.h /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-sort.h /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/index-sync-changes.h /dovecot/src/lib-storage/index/maildir/maildir-filename.h /dovecot/src/lib-storage/index/maildir/maildir-keywords.h /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync.h /dovecot/src/lib-storage/index/maildir/maildir-uidlist.h /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.h /dovecot/src/lib-storage/index/mbox/mbox-file.h /dovecot/src/lib-storage/index/mbox/mbox-from.h /dovecot/src/lib-storage/index/mbox/mbox-lock.h /dovecot/src/lib-storage/index/mbox/mbox-md5.h /dovecot/src/lib-storage/index/mbox/mbox-storage.h /dovecot/src/lib-storage/index/mbox/mbox-sync-private.h /dovecot/src/lib-storage/list/index-mailbox-list.h /dovecot/src/lib-storage/list/mailbox-list-fs.h /dovecot/src/lib-storage/list/mailbox-list-maildir.h /dovecot/src/lib-storage/list/mailbox-list-subscriptions.h /dovecot/src/lib-storage/list/subscription-file.h /dovecot/src/lib-storage/mail-copy.h /dovecot/src/lib-storage/mail-error.h /dovecot/src/lib-storage/mail-namespace.h /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib-storage/mailbox-tree.h /dovecot/src/lib/array-decl.h /dovecot/src/lib/array.h /dovecot/src/lib/backtrace-string.h /dovecot/src/lib/base64.h /dovecot/src/lib/bsearch-insert-pos.h /dovecot/src/lib/buffer.h /dovecot/src/lib/close-keep-errno.h /dovecot/src/lib/compat.h /dovecot/src/lib/crc32.h /dovecot/src/lib/data-stack.h /dovecot/src/lib/env-util.h /dovecot/src/lib/failures.h /dovecot/src/lib/fd-close-on-exec.h /dovecot/src/lib/fd-set-nonblock.h /dovecot/src/lib/fdpass.h /dovecot/src/lib/file-cache.h /dovecot/src/lib/file-copy.h /dovecot/src/lib/file-dotlock.h /dovecot/src/lib/file-lock.h /dovecot/src/lib/file-set-size.h /dovecot/src/lib/hash.h /dovecot/src/lib/hex-binary.h /dovecot/src/lib/hex-dec.h /dovecot/src/lib/hmac-md5.h /dovecot/src/lib/home-expand.h /dovecot/src/lib/hostpid.h /dovecot/src/lib/imem.h /dovecot/src/lib/ioloop-internal.h /dovecot/src/lib/ioloop-iolist.h /dovecot/src/lib/ioloop-notify-fd.h /dovecot/src/lib/ioloop.h /dovecot/src/lib/iostream-internal.h /dovecot/src/lib/istream-internal.h /dovecot/src/lib/istream-seekable.h /dovecot/src/lib/istream-tee.h /dovecot/src/lib/istream.h /dovecot/src/lib/lib-signals.h /dovecot/src/lib/lib.h /dovecot/src/lib/macros.h /dovecot/src/lib/md4.h /dovecot/src/lib/md5.h /dovecot/src/lib/mempool.h /dovecot/src/lib/mkdir-parents.h /dovecot/src/lib/mmap-util.h /dovecot/src/lib/module-context.h /dovecot/src/lib/module-dir.h /dovecot/src/lib/mountpoint.h /dovecot/src/lib/network.h /dovecot/src/lib/nfs-workarounds.h /dovecot/src/lib/ostream-crlf.h /dovecot/src/lib/ostream-internal.h /dovecot/src/lib/ostream.h /dovecot/src/lib/primes.h /dovecot/src/lib/printf-format-fix.h /dovecot/src/lib/process-title.h /dovecot/src/lib/randgen.h /dovecot/src/lib/read-full.h /dovecot/src/lib/restrict-access.h /dovecot/src/lib/restrict-process-size.h /dovecot/src/lib/safe-memset.h /dovecot/src/lib/safe-mkdir.h /dovecot/src/lib/safe-mkstemp.h /dovecot/src/lib/sendfile-util.h /dovecot/src/lib/seq-range-array.h /dovecot/src/lib/sha1.h /dovecot/src/lib/str-find.h /dovecot/src/lib/str-sanitize.h /dovecot/src/lib/str.h /dovecot/src/lib/strescape.h /dovecot/src/lib/strfuncs.h /dovecot/src/lib/unichar.h /dovecot/src/lib/unix-socket-create.h /dovecot/src/lib/unlink-directory.h /dovecot/src/lib/unlink-lockfiles.h /dovecot/src/lib/utc-mktime.h /dovecot/src/lib/utc-offset.h /dovecot/src/lib/var-expand.h /dovecot/src/lib/write-full.h /dovecot/src/login-common/client-common.h /dovecot/src/login-common/common.h /dovecot/src/login-common/login-proxy.h /dovecot/src/login-common/master.h /dovecot/src/login-common/sasl-server.h /dovecot/src/login-common/ssl-proxy.h /dovecot/src/master/askpass.h /dovecot/src/master/auth-process.h /dovecot/src/master/capabilities.h /dovecot/src/master/child-process.h /dovecot/src/master/common.h /dovecot/src/master/dict-process.h /dovecot/src/master/dup2-array.h /dovecot/src/master/listener.h /dovecot/src/master/log.h /dovecot/src/master/login-process.h /dovecot/src/master/mail-process.h /dovecot/src/master/master-login-interface.h /dovecot/src/master/master-settings.h /dovecot/src/master/ssl-init.h /dovecot/src/master/syslog-util.h /dovecot/src/plugins/acl/acl-api-private.h /dovecot/src/plugins/acl/acl-api.h /dovecot/src/plugins/acl/acl-backend-vfile.h /dovecot/src/plugins/acl/acl-cache.h /dovecot/src/plugins/acl/acl-plugin.h /dovecot/src/plugins/convert/convert-plugin.h /dovecot/src/plugins/convert/convert-storage.h /dovecot/src/plugins/expire/auth-client.h /dovecot/src/plugins/expire/expire-env.h /dovecot/src/plugins/expire/expire-plugin.h /dovecot/src/plugins/fts-lucene/fts-lucene-plugin.h /dovecot/src/plugins/fts-lucene/lucene-wrapper.h /dovecot/src/plugins/fts-squat/fts-squat-plugin.h /dovecot/src/plugins/fts-squat/squat-trie-private.h /dovecot/src/plugins/fts-squat/squat-trie.h /dovecot/src/plugins/fts-squat/squat-uidlist.h /dovecot/src/plugins/fts/fts-api-private.h /dovecot/src/plugins/fts/fts-api.h /dovecot/src/plugins/fts/fts-plugin.h /dovecot/src/plugins/imap-quota/imap-quota-plugin.h /dovecot/src/plugins/lazy-expunge/lazy-expunge-plugin.h /dovecot/src/plugins/mail-log/mail-log-plugin.h /dovecot/src/plugins/mbox-snarf/mbox-snarf-plugin.h /dovecot/src/plugins/quota/quota-fs.h /dovecot/src/plugins/quota/quota-plugin.h /dovecot/src/plugins/quota/quota-private.h /dovecot/src/plugins/quota/quota.h /dovecot/src/plugins/trash/trash-plugin.h /dovecot/src/plugins/zlib/istream-zlib.h /dovecot/src/plugins/zlib/zlib-plugin.h /dovecot/src/pop3-login/client-authenticate.h /dovecot/src/pop3-login/client.h /dovecot/src/pop3-login/pop3-proxy.h /dovecot/src/pop3/capability.h /dovecot/src/pop3/client.h /dovecot/src/pop3/commands.h /dovecot/src/pop3/common.h
1ac19c5c2b66a12f5598792aad15114ee3eb62e2 03-Apr-2007 Timo Sirainen <tss@iki.fi>

Added sql_result_setup_fetch() which makes it easier to fetch rows into structures. Added sql_result_get_field_value_binary(), which is currently not implemented for MySQL. --HG-- branch : HEAD

2cfe9983ce7a6280636ee12beccc2e865111967b 15-Dec-2006 Timo Sirainen <tss@iki.fi>

Replaced void *context from a lot of callbacks with the actual context type. Also added/fixed some context type checks. --HG-- branch : HEAD

/dovecot/src/auth/auth-client-connection.c /dovecot/src/auth/auth-master-connection.c /dovecot/src/auth/auth-master-listener.c /dovecot/src/auth/auth-worker-client.c /dovecot/src/auth/auth-worker-server.c /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-sql.c /dovecot/src/auth/passdb-checkpassword.c /dovecot/src/auth/passdb-pam.c /dovecot/src/auth/passdb-sql.c /dovecot/src/auth/userdb-sql.c /dovecot/src/deliver/auth-client.c /dovecot/src/dict/dict-server.c /dovecot/src/imap-login/client-authenticate.c /dovecot/src/imap-login/client.c /dovecot/src/imap-login/client.h /dovecot/src/imap-login/imap-proxy.c /dovecot/src/imap/client.c /dovecot/src/imap/client.h /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-idle.c /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-thread.c /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-auth/auth-server-connection.c driver-pgsql.c sql-api.h /dovecot/src/lib-storage/index/index-mail-headers.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-mailbox-check.c /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/maildir/maildir-copy.c /dovecot/src/lib-storage/index/maildir/maildir-mail.c /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/index/mbox/mbox-save.c /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib/ioloop-notify-inotify.c /dovecot/src/lib/ioloop-notify-kqueue.c /dovecot/src/lib/ostream-file.c /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/ssl-proxy-gnutls.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/auth-process.c /dovecot/src/master/auth-process.h /dovecot/src/master/dict-process.c /dovecot/src/master/log.c /dovecot/src/master/login-process.c /dovecot/src/master/master-settings.c /dovecot/src/plugins/expire/auth-client.c /dovecot/src/pop3-login/client-authenticate.c /dovecot/src/pop3-login/client.c /dovecot/src/pop3-login/client.h /dovecot/src/pop3-login/pop3-proxy.c /dovecot/src/pop3/client.c /dovecot/src/util/rawlog.c
00efa7d99981e18e286c02b18c1163dde18ee521 15-Dec-2006 Timo Sirainen <tss@iki.fi>

Type safe callbacks weren't as easy as I thought. Only callback(void *context) can be handled generically. Others can be handled specially, but only if all the parameters are pointers, otherwise eg. int parameter can be replaced with long without compiler giving any warnings. --HG-- branch : HEAD

/dovecot/src/auth/auth-request-handler.h /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-request.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-hash.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/message-content-parser.c /dovecot/src/lib-mail/message-content-parser.h /dovecot/src/lib-mail/message-header-decode.c /dovecot/src/lib-mail/message-header-decode.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-settings/settings.h sql-api.h /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-util.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib/lib-signals.c /dovecot/src/lib/lib-signals.h /dovecot/src/lib/macros.h /dovecot/src/login-common/login-proxy.h
59151b71059df1190acd75d8717ed04a7920c862 15-Dec-2006 Timo Sirainen <tss@iki.fi>

Added context parameter type safety checks for most callback APIs. --HG-- branch : HEAD

/dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-sql.c /dovecot/src/auth/main.c /dovecot/src/deliver/deliver.c /dovecot/src/deliver/mail-send.c /dovecot/src/dict/main.c /dovecot/src/imap-login/client.c /dovecot/src/imap/cmd-append.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-thread.c /dovecot/src/imap/main.c /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-request.c /dovecot/src/lib-imap/imap-bodystructure.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-hash.c /dovecot/src/lib-index/mail-hash.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/message-body-search.c /dovecot/src/lib-mail/message-content-parser.c /dovecot/src/lib-mail/message-content-parser.h /dovecot/src/lib-mail/message-decoder.c /dovecot/src/lib-mail/message-header-decode.c /dovecot/src/lib-mail/message-header-decode.h /dovecot/src/lib-mail/message-header-parser.c /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-parser.c /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-settings/settings.c /dovecot/src/lib-settings/settings.h sql-api.c sql-api.h /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-util.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/mail-search.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib/ioloop-notify-dn.c /dovecot/src/lib/ioloop.c /dovecot/src/lib/ioloop.h /dovecot/src/lib/lib-signals.c /dovecot/src/lib/lib-signals.h /dovecot/src/lib/macros.h /dovecot/src/lib/ostream.c /dovecot/src/lib/ostream.h /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/login-proxy.h /dovecot/src/login-common/main.c /dovecot/src/master/main.c /dovecot/src/pop3-login/client.c /dovecot/src/pop3/main.c
13a8c553f293349248b161ff851743498916e26e 01-Jul-2006 Timo Sirainen <tss@iki.fi>

sql_escape_string() should return const char *, not char *. --HG-- branch : HEAD

24ce0c343cefe54af841871fa39dbc3464028b06 31-May-2006 Timo Sirainen <tss@iki.fi>

Added sql_escape_string() --HG-- branch : HEAD

636ece98e31017f94940d1f09c780cab36180e79 23-Feb-2006 Timo Sirainen <tss@iki.fi>

Removed extra commas from end of enum lists. --HG-- branch : HEAD

0371406d952fe51367c7be91703e5634b7d9d225 26-Jan-2006 Timo Sirainen <tss@iki.fi>

Added support for dynamically building SQL drivers. --HG-- branch : HEAD

d5cebe7f98e63d4e2822863ef2faa4971e8b3a5d 14-Jan-2006 Timo Sirainen <tss@iki.fi>

deinit, unref, destroy, close, free, etc. functions now take a pointer to their data pointer, and set it to NULL. This makes double-frees less likely to cause security holes. --HG-- branch : HEAD

/dovecot/src/auth/auth-cache.c /dovecot/src/auth/auth-cache.h /dovecot/src/auth/auth-client-connection.c /dovecot/src/auth/auth-client-connection.h /dovecot/src/auth/auth-master-connection.c /dovecot/src/auth/auth-master-connection.h /dovecot/src/auth/auth-master-listener.c /dovecot/src/auth/auth-master-listener.h /dovecot/src/auth/auth-module.c /dovecot/src/auth/auth-module.h /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/auth-request.c /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-worker-client.c /dovecot/src/auth/auth-worker-client.h /dovecot/src/auth/auth-worker-server.c /dovecot/src/auth/auth.c /dovecot/src/auth/auth.h /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-ldap.h /dovecot/src/auth/db-passwd-file.c /dovecot/src/auth/db-passwd-file.h /dovecot/src/auth/db-sql.c /dovecot/src/auth/db-sql.h /dovecot/src/auth/main.c /dovecot/src/auth/mech-gssapi.c /dovecot/src/auth/passdb-cache.c /dovecot/src/auth/passdb-checkpassword.c /dovecot/src/auth/passdb-ldap.c /dovecot/src/auth/passdb-pam.c /dovecot/src/auth/passdb-passwd-file.c /dovecot/src/auth/passdb-sql.c /dovecot/src/auth/passdb.c /dovecot/src/auth/password-scheme.c /dovecot/src/auth/userdb-ldap.c /dovecot/src/auth/userdb-passwd-file.c /dovecot/src/auth/userdb-sql.c /dovecot/src/auth/userdb.c /dovecot/src/dict/dict-cache.c /dovecot/src/dict/dict-server.c /dovecot/src/dict/main.c /dovecot/src/imap-login/client-authenticate.c /dovecot/src/imap-login/client.c /dovecot/src/imap-login/imap-proxy.c /dovecot/src/imap/client.c /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-close.c /dovecot/src/imap/cmd-copy.c /dovecot/src/imap/cmd-delete.c /dovecot/src/imap/cmd-idle.c /dovecot/src/imap/cmd-list.c /dovecot/src/imap/cmd-logout.c /dovecot/src/imap/cmd-search.c /dovecot/src/imap/cmd-select.c /dovecot/src/imap/cmd-status.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/cmd-unselect.c /dovecot/src/imap/imap-expunge.c /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-sort.c /dovecot/src/imap/imap-sync.c /dovecot/src/imap/imap-thread.c /dovecot/src/imap/main.c /dovecot/src/imap/namespace.c /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-connection.c /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-auth/auth-server-request.c /dovecot/src/lib-charset/charset-iconv.c /dovecot/src/lib-charset/charset-utf8.c /dovecot/src/lib-charset/charset-utf8.h /dovecot/src/lib-dict/dict-client.c /dovecot/src/lib-dict/dict-sql.c /dovecot/src/lib-dict/dict.c /dovecot/src/lib-dict/dict.h /dovecot/src/lib-imap/imap-base-subject.c /dovecot/src/lib-imap/imap-bodystructure.c /dovecot/src/lib-imap/imap-envelope.c /dovecot/src/lib-imap/imap-match.c /dovecot/src/lib-imap/imap-match.h /dovecot/src/lib-imap/imap-parser.c /dovecot/src/lib-imap/imap-parser.h /dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-view.c /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-view.c /dovecot/src/lib-index/mail-transaction-log.c /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/message-body-search.c /dovecot/src/lib-mail/message-header-search.c /dovecot/src/lib-mail/message-header-search.h /dovecot/src/lib-mail/message-parser.c /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-settings/settings.c driver-mysql.c driver-pgsql.c sql-api.c sql-api.h /dovecot/src/lib-storage/index/dbox/dbox-file.c /dovecot/src/lib-storage/index/dbox/dbox-list.c /dovecot/src/lib-storage/index/dbox/dbox-save.c /dovecot/src/lib-storage/index/dbox/dbox-sync-expunge.c /dovecot/src/lib-storage/index/dbox/dbox-sync.c /dovecot/src/lib-storage/index/dbox/dbox-uidlist.c /dovecot/src/lib-storage/index/index-mail-headers.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-mailbox-check.c /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/index-storage.c /dovecot/src/lib-storage/index/index-sync.c /dovecot/src/lib-storage/index/index-transaction.c /dovecot/src/lib-storage/index/maildir/maildir-keywords.c /dovecot/src/lib-storage/index/maildir/maildir-save.c /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c /dovecot/src/lib-storage/index/mbox/mbox-file.c /dovecot/src/lib-storage/index/mbox/mbox-list.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/index/mbox/mbox-save.c /dovecot/src/lib-storage/index/mbox/mbox-storage.c /dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c /dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c /dovecot/src/lib-storage/index/mbox/mbox-sync.c /dovecot/src/lib-storage/mail-copy.c /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/subscription-file/subscription-file.c /dovecot/src/lib/buffer.c /dovecot/src/lib/buffer.h /dovecot/src/lib/file-cache.c /dovecot/src/lib/file-cache.h /dovecot/src/lib/hash.c /dovecot/src/lib/hash.h /dovecot/src/lib/ioloop-notify-dn.c /dovecot/src/lib/ioloop.c /dovecot/src/lib/ioloop.h /dovecot/src/lib/istream-limit.c /dovecot/src/lib/istream-seekable.c /dovecot/src/lib/istream.c /dovecot/src/lib/istream.h /dovecot/src/lib/lib-signals.c /dovecot/src/lib/module-dir.c /dovecot/src/lib/module-dir.h /dovecot/src/lib/ostream-crlf.c /dovecot/src/lib/ostream-file.c /dovecot/src/lib/ostream.c /dovecot/src/lib/ostream.h /dovecot/src/lib/str.c /dovecot/src/lib/str.h /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/main.c /dovecot/src/login-common/master.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/auth-process.c /dovecot/src/master/dict-process.c /dovecot/src/master/log.c /dovecot/src/master/login-process.c /dovecot/src/master/main.c /dovecot/src/master/ssl-init.c /dovecot/src/plugins/imap-quota/imap-quota-plugin.c /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/trash/trash-plugin.c /dovecot/src/plugins/zlib/zlib-plugin.c /dovecot/src/pop3-login/client-authenticate.c /dovecot/src/pop3-login/client.c /dovecot/src/pop3-login/pop3-proxy.c /dovecot/src/pop3/client.c /dovecot/src/pop3/commands.c /dovecot/src/pop3/main.c /dovecot/src/util/rawlog.c
dc9de21d4375faeedbe5b7e941502ac578650da9 10-Dec-2005 Timo Sirainen <tss@iki.fi>

Added support for transactions and synchronous SQL queries. --HG-- branch : HEAD

137ea7ca34005345aa2304a940149b7f3774d727 07-Aug-2005 Timo Sirainen <tss@iki.fi>

s/occured/occurred/ --HG-- branch : HEAD

/dovecot/doc/auth-protocol.txt /dovecot/doc/index.txt /dovecot/src/auth/Makefile.am /dovecot/src/auth/auth-master-connection.c /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-request.c /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-worker-client.c /dovecot/src/auth/passdb-blocking.c /dovecot/src/auth/passdb-checkpassword.c /dovecot/src/auth/passdb.h /dovecot/src/auth/userdb-blocking.c /dovecot/src/auth/userdb-ldap.c /dovecot/src/auth/userdb-passdb.c /dovecot/src/auth/userdb-passwd-file.c /dovecot/src/auth/userdb-passwd.c /dovecot/src/auth/userdb-sql.c /dovecot/src/auth/userdb-static.c /dovecot/src/auth/userdb-vpopmail.c /dovecot/src/auth/userdb.c /dovecot/src/auth/userdb.h /dovecot/src/imap/client.h /dovecot/src/imap/cmd-idle.c /dovecot/src/lib-imap/imap-parser.h /dovecot/src/lib-mail/message-parser.h sql-api.h /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/subscription-file/subscription-file.h /dovecot/src/lib/file-cache.h /dovecot/src/lib/istream.h /dovecot/src/lib/read-full.h /dovecot/src/lib/strfuncs.c /dovecot/src/lib/write-full.h /dovecot/src/login-common/ssl-proxy-gnutls.c /dovecot/src/login-common/ssl-proxy.h
a0b89f3b1df99b3a32f44623f13ad1893118825b 09-Jun-2005 Timo Sirainen <tss@iki.fi>

Added sql_connect() to do explicit connecting. sql_init() no longer does. --HG-- branch : HEAD

ccffb125d94adff0ad776de5a96e22f864d6fb0a 27-Feb-2005 Timo Sirainen <tss@iki.fi>

Added sql_get_flags() function, currently returning only SQL_DB_FLAG_BLOCKING. --HG-- branch : HEAD

6c2c5f20760b06bfb4a40b0ee2ef5ab016bc41f0 16-Oct-2004 Timo Sirainen <tss@iki.fi>

Created generic asynchronous SQL API and implemented MySQL and PostgreSQL drivers. MySQL is implemented synchronously because it's API doesn't provide async way to do it. Replaced pgsql and mysql userdb/passdb with generic sql userdb/passdb. --HG-- branch : HEAD