- Apr 15, 2021
-
-
Mergen Imeev authored
This patch performs a small refactoring of mem_set_double() and moves this function and mem_set_bool() to another place so that they are part of the code block containing all mem_set_*() functions. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_set_uint(). This function clears MEM and sets it to given unsigned value. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_set_int(). This function clears MEM and sets it to given integer value. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_set_null(). This function clears MEM and sets it to NULL. Part of #5818
-
Mergen Imeev authored
This patch adds initialization for newly created MEM objects in sqlVdbeAllocUnpackedRecord(). Changing a MEM without being initialized may give us unexpected result. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_bit_and(), mem_bit_or(), mem_shift_left(), mem_shift_right(), and mem_bit_not(), which perform bitwise operations on MEM. Part of #5818
-
Mergen Imeev authored
This patch introduces set of mem_cmp_*() functions. These functions are used to compare MEMs. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_add(), mem_sub(), mem_mul(), mem_div() and mem_rem(), which perform arithmetic operations on two MEMs. Operands must contain values of numeric types or values that can be converted to a number according to implicit casting rules. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_concat(). Function mem_concat() concatenates values from two MEMs in case these values are strings or binaries and writes the result to the third MEM. Part of #5818
-
Mergen Imeev authored
Function sql_column_to_messagepack() has almost the same functionality as sql_vdbe_mem_encode_tuple(). Due to this it is not necessary to have sql_column_to_messagepack(), so it is removed in this commit. Part of #5818
-
Mergen Imeev authored
The original vdbe_decode_msgpack_into_mem() returns a MEM that contains string and binary values as ephemeral. This patch renames this function to mem_from_mp_ephemeral() and introduces new function mem_from_mp(), which returns a MEM that contains string and binary values in newly allocated memory. This patch changes behavior for this query: CREATE TABLE t1(m VARBINARY primary key); INSERT INTO t1 VALUES(x'6178'), (x'6278'), (x'6379'); SELECT count(*), substr(m,2,1) AS mx FROM t1 GROUP BY mx; Before this patch: tarantool> SELECT count(*), substr(m,2,1) AS mx FROM t1 GROUP BY mx; --- - metadata: - name: COLUMN_1 type: integer - name: MX type: string rows: - [2, 'y'] - [1, 'y'] ... After this patch. tarantool> SELECT count(*), substr(m,2,1) AS mx FROM t1 GROUP BY mx; --- - metadata: - name: COLUMN_1 type: integer - name: MX type: string rows: - [2, 'x'] - [1, 'y'] ... Part of #5818 Closes #5890
-
Mergen Imeev authored
This patch reworks mem_move(). This function moves all content of source MEM to destination MEM. Source mem is set to NULL. Part of #5818
-
Mergen Imeev authored
This patch intoduces mem_copy_as_ephemeral(). This function copies value from source MEM to destination MEM. In case value is of string or binary type and its allocation type is not static, it copied as value with ephemeral allocation type. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_copy(). This function copies value from source MEM to destination MEM. In case value is string or binary and have not static allocation type, it is copied to newly allocated memory. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_is_*() functions that allows to check current MEM state. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_destroy(). This function should be used to free and destroy all objects owned by MEM, if necessary. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_create(). This function should be used to initialize a MEM. MEM should be initialized before usage. Part of #5818
-
Mergen Imeev authored
This patch introduces mem_str() which allows to receive value of MEM as a string. Due to the limitations of static_alloc(), this function cannot be used to safely retrieve a value of MEM converted to string. This function is suitable for debugging, displaying the value in an error message, etc. Part of #5818
-
Mergen Imeev authored
This patch disables unused code in sql/vdbemem.c. It will simplify refactoring. Part of #5818
-
Mergen Imeev authored
Part of #5818
-
Mergen Imeev authored
This patch simplifies port_vdbemem_dump_lua() and port_vdbemem_get_msgpack() functions. Part of #5818
-
Mergen Imeev authored
This patch moves all MEM-related functions in mem.c/mem.h. Part of #5818
-
Mergen Imeev authored
There is no need for NULL-termination, since MEMs converted to msgpack and msgpack do not require NULL-terminated strings. Needed for #5818
-
Mergen Imeev authored
This patch disables unused code in sql/legacy.c. It will simplify refactoring. Needed for #5818
-
Mergen Imeev authored
This patch disables unused code in sql/analyze.c. It will simplify refactoring. Needed for #5818
-
Mergen Imeev authored
Currently, vdbe_decode_msgpack_into_mem() creates a MEM that is not properly initialized in case msgpack contains MP_EXT, MP_MAP, or MP_ARRAY fields. This patch makes it so that after execution of this function, all created MEMs are properly initialized. Closes #5011 Closes #5704 Closes #5913 Needed for #5818
-
Alexander Turenko authored
The reason of the update is to protect us against possible MITM attack from a malicious HTTPS proxy server with trusted certificate when TLS 1.3 is used (CVE-2021-22890, [1]). libcurl versions prior to 7.76.0 can skip a TLS handshake with a target host in this circumstances. Other vulnerabilities fixed in the (7.71.1; 7.76.0] version range do not look relevant to our built-in http client. See [2] for the full list. The CMake version requirement is updated from 3.1 to 3.2, because curl's CMakeLists.txt has the following clause at beginning: | cmake_minimum_required(VERSION 3.2...3.16 FATAL_ERROR) (It was there in vanilla curl 7.71.1 too and we had to remove it in order to support CMake 2. Now we don't support CMake 2, so it is good time to get rid of the extra patch upward vanilla curl repository.) According to the CMake versions table in 8a7702b1 ('github-ci: purge Debian Jessie from CI'), CMake 3.2+ is available on all supported OSes. [1]: https://curl.se/docs/CVE-2021-22890.html [2]: https://curl.se/docs/vulnerabilities.html @TarantoolBot document Title: Now we require CMake 3.2 to build tarantool In https://github.com/tarantool/doc/issues/1780 we requested to update the CMake minimum version to 3.1. Now it is time for 3.2. See details in the linked commit. Please, update the 'Building from source' manual.
-
- Apr 14, 2021
-
-
Roman Khabibov authored
Ship libcurl headers to system path "${PREFIX}/include/tarantool" in the case of libcurl included as bundled library or static build. It is needed to use SMTP client with tarantool's libcurl instead of system libcurl. See related issue: https://github.com/tarantool/smtp/issues/24 Closes #4559
-
Roman Khabibov authored
Enable smtp and smtps protocols in bundled libcurl. It is needed to use SMTP client with tarantool's libcurl instead of system libcurl. See related issue: https://github.com/tarantool/smtp/issues/24 Part of #4559
-
Alexander V. Tikhonov authored
Found that after patch set of 5 commits: aa97a185 ("feedback_daemon: count and report some events") e9c9832a ("feedback_daemon: generate report right before sending") bc15e0f0 ("feedback_daemon: send feedback on server start") 670acf0d ("feedback_daemon: rename `send_test` to `send`") c5d595bc ("feedback_daemon: include server uptime in the report") began to leak feedback demon on using cURL. To avoid of it decided to add LSAN suppresions: 1. for /lib/x86_64-linux-gnu/libcrypto.so leak:libcrypto.so* 2. for /lib/x86_64-linux-gnu/libssl.so leak:libssl.so* Needed for tarantool/tarantool-qa#116
-
Sergey Kaplun authored
LuaJIT submodule is bumped to introduce the following changes: * test: disable too deep recursive PUC-Rio test * test: disable PUC-Rio hanging GC test * test: disable PUC-Rio test checking -h option * test: disable PUC-Rio test for checking arg layout * test: disable PUC-Rio tests for several -l options * test: disable PUC-Rio test for syntax level error * test: disable PUC-Rio test for non-ascii variable * test: disable PUC-Rio test for fast function name * test: disable PUC-Rio test for variables in error * test: disable PUC-Rio test for getfenv in tailcall * test: remove string.gfind assert in PUC-Rio test * test: use math.fmod in PUC-Rio tests * test: disable locale-dependent PUC-Rio tests * test: adapt PUC-Rio test for %q in string.format * test: disable PUC-Rio test for per-coroutine hooks * test: adapt PUC-Rio test with activeline check * test: disable PUC-Rio test for tailcall info * test: adapt PUC-Rio test with count hooks * test: adapt PUC-Rio test for debug in vararg func * test: adapt PUC-Rio tests with vararg functions * test: disable PUC-Rio suite tests for line hook * test: adapt PUC-Rio tests counting GC steps * test: disable PUC-Rio tests for bytecode header * test: disable PUC-Rio tests confused by -v output * test: adapt PUC-Rio test for arg presence * test: remove quotes in progname from PUC-Rio * test: adapt PUC-Rio suite for out-of-source build * test: build auxiliary C libs from PUC-Rio Lua 5.1 * test: add PUC-Rio Lua 5.1 test suite Within this changeset PUC-Rio Lua 5.1 suite[1] is added to Tarantool testing. Considering Tarantool specific changes in runtime the suite itself is adjusted in LuaJIT submodule. <test/luajit-test-init.lua> pretest runner is adjusted by setting custom `_loadstring()` and `_dofile()` global function to run tests correctly for out-of-source build. Also, this patch excludes PUC-Rio-Lua-5.1 test suite from ASAN checks. [1]: https://www.lua.org/tests/lua5.1-tests.tar.gz Closes #5845 Closes #5686 Closes #5694 Closes #5701 Closes #5708 Closes #5710 Closes #5711 Closes #5712 Part of #4473 Reviewed-by:
Igor Munkin <imun@tarantool.org> Signed-off-by:
Igor Munkin <imun@tarantool.org>
-
Aleksandr Lyapunov authored
Add an argument which will receive successor of the inserted tuple. Part of #5628
-
Aleksandr Lyapunov authored
Common insertion function in BSP tree can make a replacement or insertion. When a replacement happens, a replaced element is returned via special agrument. Let's add another argument of the function for the case of insetion: an element before which then insertion happened will be returned via that argument. Part of #5628
-
Aleksandr Lyapunov authored
When MVCC engine is enabled, an index can contain temporary non-committed tuples that are not visible outside their transaction. That's why internal index size can be greater than visible by standalone observer. In order to fix space:count and index:count etc we have to use special adjustment from MVCC engine. Fixes #5972
-
Aleksandr Lyapunov authored
TX manager has a problem, kwown as phantom read. If a transaction reads a value by key and founds nothing, even no dirty tuples, then the read is not recorded anywhere. Implement a special storage for point reads that founds nothing, and use it in conflict resolution. Part of #5628
-
Aleksandr Lyapunov authored
Part of #5628
-
Aleksandr Lyapunov authored
See test for details. Part of #5628
-
Aleksandr Lyapunov authored
Before this patch there was a way to build history of a key when the terminal element in list is a clean tuple, not its story. That was a kind of optimization desigend to avoid excess story creation. Unfortunately that kind of otimization is possible to use only for one-index spaces, and even in that case it doesn't work. Let's remove optimization that doesn't work. Part of #5628
-
Aleksandr Lyapunov authored
Since DUP_REPLACE mode is always used with given old_tuple, there's no reason to check in runtime Part of #5628
-
Aleksandr Lyapunov authored
Part of #5628
-