[Tarantool-patches] [PATCH v5 00/52] Move mem-related functions to mem.c/mem.h
imeevma at tarantool.org
imeevma at tarantool.org
Fri Apr 9 19:51:19 MSK 2021
This patch-set moves all MEM-related functions to mem.c and mem.h. This is done
to encapsulate struct MEM whicl allows us to simplify addition of new field
types.
https://github.com/tarantool/tarantool/issues/5818
https://github.com/tarantool/tarantool/tree/imeevma/gh-5818-encapsulate-mem-type-checking-and-changing
Changes in v5:
- Review fixes.
Changes in v4:
- Patch-set was completely reworked.
Changes in v3:
- Inlined most of the introduced functions to improve performance.
- Some other fixes in code to improve performance.
Changes in v2:
- Squashed almost all patches.
- Review fixes.
Mergen Imeev (52):
sql: enhance vdbe_decode_msgpack_into_mem()
sql: disable unused code in sql/analyze.c
sql: disable unused code in sql/legacy.c
sql: remove NULL-termination in OP_ResultRow
sql: move MEM-related functions to mem.c/mem.h
sql: refactor port_vdbemem_*() functions
sql: remove unused MEM-related functions
sql: disable unused code in sql/vdbemem.c
sql: introduce mem_str()
sql: introduce mem_create()
sql: introduce mem_destroy()
sql: introduce mem_is_*() functions()
sql: introduce mem_copy()
sql: introduce mem_copy_as_ephemeral()
sql: rework mem_move()
sql: rework vdbe_decode_msgpack_into_mem()
sql: remove sql_column_to_messagepack()
sql: introduce mem_concat()
sql: introduce arithmetic operations for MEM
sql: introduce mem_compare()
sql: introduce bitwise operations for MEM
sql: Initialize MEM in sqlVdbeAllocUnpackedRecord()
sql: introduce mem_set_null()
sql: introduce mem_set_int()
sql: introduce mem_set_uint()
sql: move mem_set_bool() and mem_set_double()
sql: introduce mem_set_str_*() functions
sql: introduce mem_copy_str() and mem_copy_str0()
sql: introduce mem_set_bin_*() functions
sql: introduce mem_copy_bin()
sql: introduce mem_set_zerobin()
sql: introduce mem_set_*() for map and array
sql: introduce mem_set_invalid()
sql: refactor mem_set_ptr()
sql: introduce mem_set_frame()
sql: introduce mem_set_agg()
sql: introduce mem_set_null_clear()
sql: move MEM flags to mem.c
sql: introduce mem_to_int*() functions
sql: introduce mem_to_double()
sql: introduce mem_to_number()
sql: introduce mem_to_str() and mem_to_str0()
sql: introduce mem_cast_explicit()
sql: introduce mem_cast_implicit()
sql: introduce mem_get_int()
sql: introduce mem_get_uint()
sql: introduce mem_get_double()
sql: introduce mem_get_bool()
sql: introduce mem_get_str0() and mem_as_str0()
sql: introduce mem_get_bin()
sql: introduce mem_get_bytes_len()
sql: introduce mem_get_agg()
src/box/CMakeLists.txt | 1 +
src/box/execute.c | 130 +-
src/box/sql.c | 96 +-
src/box/sql.h | 8 -
src/box/sql/analyze.c | 82 +-
src/box/sql/build.c | 1 +
src/box/sql/func.c | 581 ++-----
src/box/sql/insert.c | 1 +
src/box/sql/legacy.c | 4 +
src/box/sql/main.c | 1 +
src/box/sql/mem.c | 3176 +++++++++++++++++++++++++++++++++++++++
src/box/sql/mem.h | 751 +++++++++
src/box/sql/pragma.c | 1 +
src/box/sql/printf.c | 13 +-
src/box/sql/select.c | 3 +-
src/box/sql/sqlInt.h | 153 +-
src/box/sql/trigger.c | 1 +
src/box/sql/vdbe.c | 1301 ++++------------
src/box/sql/vdbe.h | 1 -
src/box/sql/vdbeInt.h | 313 +---
src/box/sql/vdbeapi.c | 432 ++----
src/box/sql/vdbeaux.c | 632 +-------
src/box/sql/vdbemem.c | 1329 +---------------
src/box/sql/vdbesort.c | 9 +-
src/box/sql/vdbetrace.c | 35 +-
src/box/sql/where.c | 1 +
src/box/sql/whereexpr.c | 6 +-
27 files changed, 4667 insertions(+), 4395 deletions(-)
create mode 100644 src/box/sql/mem.c
create mode 100644 src/box/sql/mem.h
--
2.25.1
More information about the Tarantool-patches
mailing list