Cross Reference: /dovecot/src/lib-sql/sql-api.c

Lines Matching refs:stmt

180 	struct default_sql_prepared_statement *stmt =
182 return sql_statement_init(_stmt->db, stmt->query_template);
185 const char *sql_statement_get_query(struct sql_statement *stmt)
191 args = array_get(&stmt->args, &args_count);
193 for (i = 0; stmt->query_template[i] != '\0'; i++) {
194 if (stmt->query_template[i] == '?') {
198 arg_pos, stmt->query_template);
202 str_append_c(query, stmt->query_template[i]);
207 args_count, stmt->query_template);
213 default_sql_statement_query(struct sql_statement *stmt,
216 sql_query(stmt->db, sql_statement_get_query(stmt),
218 pool_unref(&stmt->pool);
222 default_sql_statement_query_s(struct sql_statement *stmt)
225 sql_query_s(stmt->db, sql_statement_get_query(stmt));
226 pool_unref(&stmt->pool);
231 struct sql_statement *stmt,
234 ctx->db->v.update(ctx, sql_statement_get_query(stmt),
236 pool_unref(&stmt->pool);
260 sql_statement_init_fields(struct sql_statement *stmt, struct sql_db *db)
262 stmt->db = db;
263 p_array_init(&stmt->args, stmt->pool, 8);
269 struct sql_statement *stmt;
272 stmt = db->v.statement_init(db, query_template);
275 stmt = p_new(pool, struct sql_statement, 1);
276 stmt->pool = pool;
278 stmt->query_template = p_strdup(stmt->pool, query_template);
279 sql_statement_init_fields(stmt, db);
280 return stmt;
286 struct sql_statement *stmt;
291 stmt = prep_stmt->db->v.statement_init_prepared(prep_stmt);
292 sql_statement_init_fields(stmt, prep_stmt->db);
293 return stmt;
298 struct sql_statement *stmt = *_stmt;
301 if (stmt->db->v.statement_abort != NULL)
302 stmt->db->v.statement_abort(stmt);
303 pool_unref(&stmt->pool);
306 void sql_statement_set_timestamp(struct sql_statement *stmt,
309 if (stmt->db->v.statement_set_timestamp != NULL)
310 stmt->db->v.statement_set_timestamp(stmt, ts);
313 void sql_statement_bind_str(struct sql_statement *stmt,
317 p_strdup_printf(stmt->pool, "'%s'",
318 sql_escape_string(stmt->db, value));
319 array_idx_set(&stmt->args, column_idx, &escaped_value);
321 if (stmt->db->v.statement_bind_str != NULL)
322 stmt->db->v.statement_bind_str(stmt, column_idx, value);
325 void sql_statement_bind_binary(struct sql_statement *stmt,
330 p_strdup_printf(stmt->pool, "%s",
331 sql_escape_blob(stmt->db, value, value_size));
332 array_idx_set(&stmt->args, column_idx, &value_str);
334 if (stmt->db->v.statement_bind_binary != NULL) {
335 stmt->db->v.statement_bind_binary(stmt, column_idx,
340 void sql_statement_bind_int64(struct sql_statement *stmt,
343 const char *value_str = p_strdup_printf(stmt->pool, "%"PRId64, value);
344 array_idx_set(&stmt->args, column_idx, &value_str);
346 if (stmt->db->v.statement_bind_int64 != NULL)
347 stmt->db->v.statement_bind_int64(stmt, column_idx, value);
354 struct sql_statement *stmt = *_stmt;
357 if (stmt->db->v.statement_query != NULL)
358 stmt->db->v.statement_query(stmt, callback, context);
360 default_sql_statement_query(stmt, callback, context);
365 struct sql_statement *stmt = *_stmt;
368 if (stmt->db->v.statement_query_s != NULL)
369 return stmt->db->v.statement_query_s(stmt);
371 return default_sql_statement_query_s(stmt);
637 struct sql_statement *stmt = *_stmt;
641 ctx->db->v.update_stmt(ctx, stmt, NULL);
643 default_sql_update_stmt(ctx, stmt, NULL);
656 struct sql_statement *stmt = *_stmt;
660 ctx->db->v.update_stmt(ctx, stmt, affected_rows);
662 default_sql_update_stmt(ctx, stmt, affected_rows);