#include "dict-private.h"
static ARRAY(struct dict *) dict_drivers;
-static struct dict_iterate_context dict_iter_unsupported;
static struct dict *dict_driver_lookup(const char *name)
{
bool dict_iterate(struct dict_iterate_context *ctx,
const char **key_r, const char **value_r)
{
- if (ctx == &dict_iter_unsupported)
- return FALSE;
if (ctx->max_rows > 0 && ctx->row_count >= ctx->max_rows) {
/* row count was limited */
ctx->has_more = FALSE;
ctx->dict->iter_count--;
*_ctx = NULL;
- return ctx == &dict_iter_unsupported ? -1 :
- ctx->dict->v.iterate_deinit(ctx);
+ return ctx->dict->v.iterate_deinit(ctx);
}
struct dict_transaction_context *dict_transaction_begin(struct dict *dict)
{
+ if (dict->v.transaction_init == NULL)
+ return &dict_transaction_unsupported;
return dict->v.transaction_init(dict);
}