[Tarantool-patches] [PATCH] box: sql prepare and execute statistics should be reflected in box.stat()
Nikita Pettik
korablev at tarantool.org
Tue Feb 11 02:06:01 MSK 2020
On 10 Feb 21:35, Maria Khaydich wrote:
>
> diff --git a/src/box/execute.c b/src/box/execute.c
> index dc8dce81c..e775055b4 100644
> --- a/src/box/execute.c
> +++ b/src/box/execute.c
> @@ -48,6 +48,7 @@
> #include "box/lua/execute.h"
> #include "box/sql_stmt_cache.h"
> #include "session.h"
> +#include "rmean.h"
>
> const char *sql_info_key_strs[] = {
> "row_count",
> @@ -608,6 +609,7 @@ sql_prepare(const char *sql, int len, struct port *port)
> {
> uint32_t stmt_id = sql_stmt_calculate_id(sql, len);
> struct sql_stmt *stmt = sql_stmt_cache_find(stmt_id);
> + rmean_collect(rmean_box, IPROTO_PREPARE, 1);
> if (stmt == NULL) {
> if (sql_stmt_compile(sql, len, NULL, &stmt, NULL) != 0)
> return -1;
> @@ -669,6 +671,7 @@ static inline int
> sql_execute(struct sql_stmt *stmt, struct port *port, struct region *region)
> {
> int rc, column_count = sql_column_count(stmt);
> + rmean_collect(rmean_box, IPROTO_EXECUTE, 1);
> if (column_count > 0) {
> /* Either ROW or DONE or ERROR. */
> while ((rc = sql_step(stmt)) == SQL_ROW) {
> @@ -732,6 +735,7 @@ sql_prepare_and_execute(const char *sql, int len, const struct sql_bind *bind,
> if (sql_stmt_compile(sql, len, NULL, &stmt, NULL) != 0)
> return -1;
> assert(stmt != NULL);
> + rmean_collect(rmean_box, IPROTO_PREPARE, 1);
prepare_and_execute() is supposed to handle IPROTO_EXECUTE request.
> enum sql_serialization_format format = sql_column_count(stmt) > 0 ?
> DQL_EXECUTE : DML_EXECUTE;
> port_sql_create(port, stmt, format, true);
> diff --git a/test/box-tap/cfg.test.lua b/test/box-tap/cfg.test.lua
> index d529447bb..d367aab07 100755
> --- a/test/box-tap/cfg.test.lua
> +++ b/test/box-tap/cfg.test.lua
box-tap/cfg.test is unlikely to be proper place for this test.
Look at sql/ suite (for instance, sql/iproto.test.lua).
More information about the Tarantool-patches
mailing list