]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: Explicitly specify used *_vfuncs methods for drivers.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 22 Aug 2017 08:31:51 +0000 (11:31 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 8 Sep 2017 10:18:32 +0000 (13:18 +0300)
This allows adding more methods without modifying all the existing drivers.

src/lib-sql/driver-cassandra.c
src/lib-sql/driver-mysql.c
src/lib-sql/driver-pgsql.c
src/lib-sql/driver-sqlite.c
src/lib-sql/driver-sqlpool.c
src/lib-sql/driver-test.c

index 5de4753d193df957241413f26f14dc685578a43b..d63bfdf865b3c808729bc19ea6f4c2de316a33d9 100644 (file)
@@ -1616,23 +1616,23 @@ const struct sql_db driver_cassandra_db = {
        .flags = 0,
 
        .v = {
-               driver_cassandra_init_v,
-               driver_cassandra_deinit_v,
-               driver_cassandra_connect,
-               driver_cassandra_disconnect,
-               driver_cassandra_escape_string,
-               driver_cassandra_exec,
-               driver_cassandra_query,
-               driver_cassandra_query_s,
-
-               driver_cassandra_transaction_begin,
-               driver_cassandra_transaction_commit,
-               driver_cassandra_transaction_commit_s,
-               driver_cassandra_transaction_rollback,
-
-               driver_cassandra_update,
-
-               driver_cassandra_escape_blob
+               .init = driver_cassandra_init_v,
+               .deinit = driver_cassandra_deinit_v,
+               .connect = driver_cassandra_connect,
+               .disconnect = driver_cassandra_disconnect,
+               .escape_string = driver_cassandra_escape_string,
+               .exec = driver_cassandra_exec,
+               .query = driver_cassandra_query,
+               .query_s = driver_cassandra_query_s,
+
+               .transaction_begin = driver_cassandra_transaction_begin,
+               .transaction_commit = driver_cassandra_transaction_commit,
+               .transaction_commit_s = driver_cassandra_transaction_commit_s,
+               .transaction_rollback = driver_cassandra_transaction_rollback,
+
+               .update = driver_cassandra_update,
+
+               .escape_blob = driver_cassandra_escape_blob,
        }
 };
 
index 56e70bfa4d5c8635bd2f7794ab937a44bfd126a8..83ecdfc170d21a65797eb9983bb6088e0dd7e54c 100644 (file)
@@ -663,39 +663,38 @@ const struct sql_db driver_mysql_db = {
        .flags = SQL_DB_FLAG_BLOCKING | SQL_DB_FLAG_POOLED,
 
        .v = {
-               driver_mysql_init_v,
-               driver_mysql_deinit_v,
-               driver_mysql_connect,
-               driver_mysql_disconnect,
-               driver_mysql_escape_string,
-               driver_mysql_exec,
-               driver_mysql_query,
-               driver_mysql_query_s,
-
-               driver_mysql_transaction_begin,
-               driver_mysql_transaction_commit,
-               driver_mysql_transaction_commit_s,
-               driver_mysql_transaction_rollback,
-
-               driver_mysql_update,
-
-               driver_mysql_escape_blob
+               .init = driver_mysql_init_v,
+               .deinit = driver_mysql_deinit_v,
+               .connect = driver_mysql_connect,
+               .disconnect = driver_mysql_disconnect,
+               .escape_string = driver_mysql_escape_string,
+               .exec = driver_mysql_exec,
+               .query = driver_mysql_query,
+               .query_s = driver_mysql_query_s,
+
+               .transaction_begin = driver_mysql_transaction_begin,
+               .transaction_commit = driver_mysql_transaction_commit,
+               .transaction_commit_s = driver_mysql_transaction_commit_s,
+               .transaction_rollback = driver_mysql_transaction_rollback,
+
+               .update = driver_mysql_update,
+
+               .escape_blob = driver_mysql_escape_blob,
        }
 };
 
 const struct sql_result driver_mysql_result = {
        .v = {
-               driver_mysql_result_free,
-               driver_mysql_result_next_row,
-               driver_mysql_result_get_fields_count,
-               driver_mysql_result_get_field_name,
-               driver_mysql_result_find_field,
-               driver_mysql_result_get_field_value,
-               driver_mysql_result_get_field_value_binary,
-               driver_mysql_result_find_field_value,
-               driver_mysql_result_get_values,
-               driver_mysql_result_get_error,
-               NULL,
+               .free = driver_mysql_result_free,
+               .next_row = driver_mysql_result_next_row,
+               .get_fields_count = driver_mysql_result_get_fields_count,
+               .get_field_name = driver_mysql_result_get_field_name,
+               .find_field = driver_mysql_result_find_field,
+               .get_field_value = driver_mysql_result_get_field_value,
+               .get_field_value_binary = driver_mysql_result_get_field_value_binary,
+               .find_field_value = driver_mysql_result_find_field_value,
+               .get_values = driver_mysql_result_get_values,
+               .get_error = driver_mysql_result_get_error,
        }
 };
 
@@ -707,11 +706,9 @@ driver_mysql_result_error_next_row(struct sql_result *result ATTR_UNUSED)
 
 const struct sql_result driver_mysql_error_result = {
        .v = {
-               driver_mysql_result_free,
-               driver_mysql_result_error_next_row,
-               NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-               driver_mysql_result_get_error,
-               NULL,
+               .free = driver_mysql_result_free,
+               .next_row = driver_mysql_result_error_next_row,
+               .get_error = driver_mysql_result_get_error,
        },
        .failed_try_retry = TRUE
 };
index 1e626dbf72223d909fc211e98199c49d76df9be1..842dddc395e0f8ac15a994a14c219463e009a8b2 100644 (file)
@@ -1175,39 +1175,38 @@ const struct sql_db driver_pgsql_db = {
        .flags = SQL_DB_FLAG_POOLED,
 
        .v = {
-               driver_pgsql_init_v,
-               driver_pgsql_deinit_v,
-               driver_pgsql_connect,
-               driver_pgsql_disconnect,
-               driver_pgsql_escape_string,
-               driver_pgsql_exec,
-               driver_pgsql_query,
-               driver_pgsql_query_s,
-
-               driver_pgsql_transaction_begin,
-               driver_pgsql_transaction_commit,
-               driver_pgsql_transaction_commit_s,
-               driver_pgsql_transaction_rollback,
-
-               driver_pgsql_update,
-
-               driver_pgsql_escape_blob
+               .init = driver_pgsql_init_v,
+               .deinit = driver_pgsql_deinit_v,
+               .connect = driver_pgsql_connect,
+               .disconnect = driver_pgsql_disconnect,
+               .escape_string = driver_pgsql_escape_string,
+               .exec = driver_pgsql_exec,
+               .query = driver_pgsql_query,
+               .query_s = driver_pgsql_query_s,
+
+               .transaction_begin = driver_pgsql_transaction_begin,
+               .transaction_commit = driver_pgsql_transaction_commit,
+               .transaction_commit_s = driver_pgsql_transaction_commit_s,
+               .transaction_rollback = driver_pgsql_transaction_rollback,
+
+               .update = driver_pgsql_update,
+
+               .escape_blob = driver_pgsql_escape_blob,
        }
 };
 
 const struct sql_result driver_pgsql_result = {
        .v = {
-               driver_pgsql_result_free,
-               driver_pgsql_result_next_row,
-               driver_pgsql_result_get_fields_count,
-               driver_pgsql_result_get_field_name,
-               driver_pgsql_result_find_field,
-               driver_pgsql_result_get_field_value,
-               driver_pgsql_result_get_field_value_binary,
-               driver_pgsql_result_find_field_value,
-               driver_pgsql_result_get_values,
-               driver_pgsql_result_get_error,
-               NULL,
+               .free = driver_pgsql_result_free,
+               .next_row = driver_pgsql_result_next_row,
+               .get_fields_count = driver_pgsql_result_get_fields_count,
+               .get_field_name = driver_pgsql_result_get_field_name,
+               .find_field = driver_pgsql_result_find_field,
+               .get_field_value = driver_pgsql_result_get_field_value,
+               .get_field_value_binary = driver_pgsql_result_get_field_value_binary,
+               .find_field_value = driver_pgsql_result_find_field_value,
+               .get_values = driver_pgsql_result_get_values,
+               .get_error = driver_pgsql_result_get_error,
        }
 };
 
index 1508a90ef098067a6a4d91ffe48cdc7d6072d81d..71f8f05c823ffc06e185f1f6d094a54b1e89f40b 100644 (file)
@@ -411,38 +411,38 @@ const struct sql_db driver_sqlite_db = {
        .flags = SQL_DB_FLAG_BLOCKING,
 
        .v = {
-               driver_sqlite_init_v,
-               driver_sqlite_deinit_v,
-               driver_sqlite_connect,
-               driver_sqlite_disconnect,
-               driver_sqlite_escape_string,
-               driver_sqlite_exec,
-               driver_sqlite_query,
-               driver_sqlite_query_s,
-
-               driver_sqlite_transaction_begin,
-               driver_sqlite_transaction_commit,
-               driver_sqlite_transaction_commit_s,
-               driver_sqlite_transaction_rollback,
-               driver_sqlite_update,
-
-               driver_sqlite_escape_blob
+               .init = driver_sqlite_init_v,
+               .deinit = driver_sqlite_deinit_v,
+               .connect = driver_sqlite_connect,
+               .disconnect = driver_sqlite_disconnect,
+               .escape_string = driver_sqlite_escape_string,
+               .exec = driver_sqlite_exec,
+               .query = driver_sqlite_query,
+               .query_s = driver_sqlite_query_s,
+
+               .transaction_begin = driver_sqlite_transaction_begin,
+               .transaction_commit = driver_sqlite_transaction_commit,
+               .transaction_commit_s = driver_sqlite_transaction_commit_s,
+               .transaction_rollback = driver_sqlite_transaction_rollback,
+
+               .update = driver_sqlite_update,
+
+               .escape_blob = driver_sqlite_escape_blob,
        }
 };
 
 const struct sql_result driver_sqlite_result = {
        .v = {
-               driver_sqlite_result_free,
-               driver_sqlite_result_next_row,
-               driver_sqlite_result_get_fields_count,
-               driver_sqlite_result_get_field_name,
-               driver_sqlite_result_find_field,
-               driver_sqlite_result_get_field_value,
-               driver_sqlite_result_get_field_value_binary,
-               driver_sqlite_result_find_field_value,
-               driver_sqlite_result_get_values,
-               driver_sqlite_result_get_error,
-               NULL,
+               .free = driver_sqlite_result_free,
+               .next_row = driver_sqlite_result_next_row,
+               .get_fields_count = driver_sqlite_result_get_fields_count,
+               .get_field_name = driver_sqlite_result_get_field_name,
+               .find_field = driver_sqlite_result_find_field,
+               .get_field_value = driver_sqlite_result_get_field_value,
+               .get_field_value_binary = driver_sqlite_result_get_field_value_binary,
+               .find_field_value = driver_sqlite_result_find_field_value,
+               .get_values = driver_sqlite_result_get_values,
+               .get_error = driver_sqlite_result_get_error,
        }
 };
 
@@ -454,11 +454,9 @@ driver_sqlite_result_error_next_row(struct sql_result *result ATTR_UNUSED)
 
 const struct sql_result driver_sqlite_error_result = {
        .v = {
-               driver_sqlite_result_free,
-               driver_sqlite_result_error_next_row,
-               NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-               driver_sqlite_result_get_error,
-               NULL,
+               .free = driver_sqlite_result_free,
+               .next_row = driver_sqlite_result_error_next_row,
+               .get_error = driver_sqlite_result_get_error,
        }
 };
 
index 29b7c8e0c1b521e60d8c690b7a8bc2cd8dcdd29f..dfc0450fb8f0a385e72e22a2cf645f5311817d03 100644 (file)
@@ -816,22 +816,21 @@ struct sql_db driver_sqlpool_db = {
        "",
 
        .v = {
-               NULL,
-               driver_sqlpool_deinit,
-               driver_sqlpool_connect,
-               driver_sqlpool_disconnect,
-               driver_sqlpool_escape_string,
-               driver_sqlpool_exec,
-               driver_sqlpool_query,
-               driver_sqlpool_query_s,
-
-               driver_sqlpool_transaction_begin,
-               driver_sqlpool_transaction_commit,
-               driver_sqlpool_transaction_commit_s,
-               driver_sqlpool_transaction_rollback,
-
-               driver_sqlpool_update,
-
-               driver_sqlpool_escape_blob
+               .deinit = driver_sqlpool_deinit,
+               .connect = driver_sqlpool_connect,
+               .disconnect = driver_sqlpool_disconnect,
+               .escape_string = driver_sqlpool_escape_string,
+               .exec = driver_sqlpool_exec,
+               .query = driver_sqlpool_query,
+               .query_s = driver_sqlpool_query_s,
+
+               .transaction_begin = driver_sqlpool_transaction_begin,
+               .transaction_commit = driver_sqlpool_transaction_commit,
+               .transaction_commit_s = driver_sqlpool_transaction_commit_s,
+               .transaction_rollback = driver_sqlpool_transaction_rollback,
+
+               .update = driver_sqlpool_update,
+
+               .escape_blob = driver_sqlpool_escape_blob,
        }
 };
index f21d73a4ae9317a51f2f9e3fa3494b544e5fd28b..8990f2b982403de6bd0c7800a4f479df9758e4fb 100644 (file)
@@ -87,22 +87,22 @@ const struct sql_db driver_test_mysql_db = {
        .name = "mysql",
 
        .v = {
-               driver_test_mysql_init,
-               driver_test_deinit,
-               driver_test_connect,
-               driver_test_disconnect,
-               driver_test_mysql_escape_string,
-               driver_test_exec,
-               driver_test_query,
-               driver_test_query_s,
-
-               driver_test_transaction_begin,
-               driver_test_transaction_commit,
-               driver_test_transaction_commit_s,
-               driver_test_transaction_rollback,
-               driver_test_update,
-
-               driver_test_mysql_escape_blob
+               .init = driver_test_mysql_init,
+               .deinit = driver_test_deinit,
+               .connect = driver_test_connect,
+               .disconnect = driver_test_disconnect,
+               .escape_string = driver_test_mysql_escape_string,
+               .exec = driver_test_exec,
+               .query = driver_test_query,
+               .query_s = driver_test_query_s,
+
+               .transaction_begin = driver_test_transaction_begin,
+               .transaction_commit = driver_test_transaction_commit,
+               .transaction_commit_s = driver_test_transaction_commit_s,
+               .transaction_rollback = driver_test_transaction_rollback,
+               .update = driver_test_update,
+
+               .escape_blob = driver_test_mysql_escape_blob,
        }
 };
 
@@ -110,22 +110,22 @@ const struct sql_db driver_test_cassandra_db = {
        .name = "cassandra",
 
        .v = {
-               driver_test_cassandra_init,
-               driver_test_deinit,
-               driver_test_connect,
-               driver_test_disconnect,
-               driver_test_escape_string,
-               driver_test_exec,
-               driver_test_query,
-               driver_test_query_s,
-
-               driver_test_transaction_begin,
-               driver_test_transaction_commit,
-               driver_test_transaction_commit_s,
-               driver_test_transaction_rollback,
-               driver_test_update,
-
-               driver_test_escape_blob
+               .init = driver_test_cassandra_init,
+               .deinit = driver_test_deinit,
+               .connect = driver_test_connect,
+               .disconnect = driver_test_disconnect,
+               .escape_string = driver_test_escape_string,
+               .exec = driver_test_exec,
+               .query = driver_test_query,
+               .query_s = driver_test_query_s,
+
+               .transaction_begin = driver_test_transaction_begin,
+               .transaction_commit = driver_test_transaction_commit,
+               .transaction_commit_s = driver_test_transaction_commit_s,
+               .transaction_rollback = driver_test_transaction_rollback,
+               .update = driver_test_update,
+
+               .escape_blob = driver_test_escape_blob,
        }
 };
 
@@ -133,39 +133,38 @@ const struct sql_db driver_test_sqlite_db = {
        .name = "sqlite",
 
        .v = {
-               driver_test_sqlite_init,
-               driver_test_deinit,
-               driver_test_connect,
-               driver_test_disconnect,
-               driver_test_escape_string,
-               driver_test_exec,
-               driver_test_query,
-               driver_test_query_s,
-
-               driver_test_transaction_begin,
-               driver_test_transaction_commit,
-               driver_test_transaction_commit_s,
-               driver_test_transaction_rollback,
-               driver_test_update,
-
-               driver_test_escape_blob
+               .init = driver_test_sqlite_init,
+               .deinit = driver_test_deinit,
+               .connect = driver_test_connect,
+               .disconnect = driver_test_disconnect,
+               .escape_string = driver_test_escape_string,
+               .exec = driver_test_exec,
+               .query = driver_test_query,
+               .query_s = driver_test_query_s,
+
+               .transaction_begin = driver_test_transaction_begin,
+               .transaction_commit = driver_test_transaction_commit,
+               .transaction_commit_s = driver_test_transaction_commit_s,
+               .transaction_rollback = driver_test_transaction_rollback,
+               .update = driver_test_update,
+
+               .escape_blob = driver_test_escape_blob,
        }
 };
 
 
 const struct sql_result driver_test_result = {
        .v = {
-               driver_test_result_free,
-               driver_test_result_next_row,
-               driver_test_result_get_fields_count,
-               driver_test_result_get_field_name,
-               driver_test_result_find_field,
-               driver_test_result_get_field_value,
-               driver_test_result_get_field_value_binary,
-               driver_test_result_find_field_value,
-               driver_test_result_get_values,
-               driver_test_result_get_error,
-               NULL,
+               .free = driver_test_result_free,
+               .next_row = driver_test_result_next_row,
+               .get_fields_count = driver_test_result_get_fields_count,
+               .get_field_name = driver_test_result_get_field_name,
+               .find_field = driver_test_result_find_field,
+               .get_field_value = driver_test_result_get_field_value,
+               .get_field_value_binary = driver_test_result_get_field_value_binary,
+               .find_field_value = driver_test_result_find_field_value,
+               .get_values = driver_test_result_get_values,
+               .get_error = driver_test_result_get_error,
        }
 };