From: Nikita Pettik <korablev@tarantool.org>
To: tarantool-patches@freelists.org
Cc: v.shpilevoy@tarantool.org, Nikita Pettik <korablev@tarantool.org>
Subject: [tarantool-patches] [PATCH 0/4] Move original SQLite's statistics to server
Date: Mon, 23 Apr 2018 23:29:37 +0300 [thread overview]
Message-ID: <cover.1524515002.git.korablev@tarantool.org> (raw)
Branch: https://github.com/tarantool/tarantool/tree/np/gh-3253-move-statistics-to-server
Issue: https://github.com/tarantool/tarantool/issues/3253
This patch-set is about transfering statistics containing in
SQL specific struct Table and struct Index to the struct index of
Tarantool. Unused statistics are removed at all.
First patch of the series provides slight optimization of simple
'SELECT COUNT(*)' query compilation. There is no need to hesistate which
index to choose: always use PK. It also allows to remove one usage of
statistics from index.
Second patch removes obsolete SQLite calculation of average tuple size:
it is always possible to get size of space, count of tuples and divide
them.
Third patch adds simple wrapper to fetch tuple count of given
table from server.
The last and the main one, introduces new member of index's opts to
describe statistics concerning distribution of tuples. Within this patch,
routine used to load statistics from _sql_stat1 and _sql_stat4 has been
reworked to operate directly on Tarantool's structs. It also includes
codestyle fixes.
Nikita Pettik (4):
sql: optimize compilation of SELECT COUNT(*)
sql: add average tuple size calculation
sql: refactor usages of table's tuple count
sql: move SQL statistics to server
src/box/index_def.c | 92 +++++
src/box/index_def.h | 90 +++++
src/box/sql/analyze.c | 787 ++++++++++++++++++++---------------------
src/box/sql/build.c | 107 ------
src/box/sql/parse.y | 2 -
src/box/sql/pragma.c | 25 +-
src/box/sql/prepare.c | 7 +-
src/box/sql/select.c | 210 +++++------
src/box/sql/sqliteInt.h | 123 +++++--
src/box/sql/vdbe.c | 7 +-
src/box/sql/where.c | 231 ++++++++----
src/box/sql/whereexpr.c | 4 +-
test/sql-tap/analyze9.test.lua | 81 +++--
test/sql-tap/eqp.test.lua | 2 +-
14 files changed, 954 insertions(+), 814 deletions(-)
--
2.15.1
next reply other threads:[~2018-04-23 20:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-23 20:29 Nikita Pettik [this message]
2018-04-23 20:29 ` [tarantool-patches] [PATCH 1/4] sql: optimize compilation of SELECT COUNT(*) Nikita Pettik
2018-04-24 12:51 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-11 17:29 ` n.pettik
2018-04-23 20:29 ` [tarantool-patches] [PATCH 2/4] sql: add average tuple size calculation Nikita Pettik
2018-04-24 12:51 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-11 17:29 ` n.pettik
2018-04-23 20:29 ` [tarantool-patches] [PATCH 3/4] sql: refactor usages of table's tuple count Nikita Pettik
2018-04-24 12:51 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-11 17:29 ` n.pettik
2018-04-23 20:29 ` [tarantool-patches] [PATCH 4/4] sql: move SQL statistics to server Nikita Pettik
2018-04-24 12:51 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-11 17:29 ` n.pettik
2018-05-11 22:00 ` Vladislav Shpilevoy
2018-05-14 11:52 ` n.pettik
2018-05-14 12:54 ` Vladislav Shpilevoy
2018-05-14 13:55 ` n.pettik
2018-05-14 14:12 ` [tarantool-patches] Re: [PATCH 0/4] Move original SQLite's " Vladislav Shpilevoy
2018-05-15 13:42 ` Kirill Yukhin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1524515002.git.korablev@tarantool.org \
--to=korablev@tarantool.org \
--cc=tarantool-patches@freelists.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [tarantool-patches] [PATCH 0/4] Move original SQLite'\''s statistics to server' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox