- Nov 11, 2021
-
-
Yaroslav Lobankov authored
This patch extends the 'integration.yml' workflow and adds a new workflow call for running tests to verify integration between tarantool and the tarantool-php/queue connector. Part of #5265 Part of #6056 Closes #6595
-
Mergen Imeev authored
This patch forces SQL built-in function implementations to accept 'const struct Mem *' instead of just 'struct Mem *'. Needed for #4145
-
Mergen Imeev authored
This patch removes the MEM_Term flag, because after changes in the SQL built-in functions, this flag is no longer used. Needed for #4145
-
Mergen Imeev authored
This patch removes the MEM_Dyn flag, because after changes in the SQL built-in functions, this flag is no longer used. Needed for #4145
-
Mergen Imeev authored
Some of the code is no longer used after changes in the SQL built-in functions. This patch removes part of the unused code. Needed for #4145
-
Mergen Imeev authored
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
This patch refactors UUID() function. Also, UUID(NULL) now returns NULL. Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
This patch refactors RANDOMBLOB() function. Also, RANDOMBLOB(0) now returns empty string. part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
The CHAR() function now uses the ICU macro to get characters. Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
This patch makes SUBSTR() work according to ANSI rules for SUBSTRING() function. Also, SUBSTR() can now work correctly with large INTEGER values. The SUBSTR() syntax has not changed. Part of #4145 @TarantoolBot document Title: SUBSTR() function SUBSTR() now works according to the ANSI rules for SUBSTRING(). Rules for SUBSTR() with 2 arguments: 1) let the first argument be VALUE, and the second argument be START; 2) VALUE should be STRING or VARBINARY, START should be INTEGER; 3) if any of arguments is NULL, NULL is returned; 4) let POS be MAX(START - 1, 0), END be length of the VALUE; 5) if POS >= END, the result is empty string; 6) if POS < END, the result will be substring of VALUE, starting from the position POS to the position END. Rules for SUBSTR() with 3 arguments: 1) let the first argument be VALUE, the second argument be START, and the third argument be LENGTH; 2) VALUE should be STRING or VARBINARY, START and LENGTH should be INTEGERs; 3) if any of arguments is NULL, NULL is returned; 4) if LENGTH < 0, an error is thrown; 5) let POS be MAX(START - 1, 0), END be START + LENGTH - 1; 6) if POS >= END, the result is empty string; 7) if POS < END, the result will be substring of VALUE, starting from the position POS to the position END.
-
Mergen Imeev authored
This patch is a refactoring of POSITION(). In addition, VARBINARY arguments can now be used in this function. In addition, POSITION() now uses ICU functions instead of self-created. Part of #4145
-
Mergen Imeev authored
This patch refactoring TRIM() and fixes an issue with incorrect trimming of some VARBINARY values. Also, TRIM() now use ICU functions instead of self-created. Part of #4415
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
Part of #4145
-
Mergen Imeev authored
The CHAR_LENGTH() and CHARACTER_LENGTH() functions now use ICU functions to determine the length of a string. Part of #4145 @TarantoolBot document Title: Invalid UTF-8 values and ICU Invalid UTF-8 values may be handled differently depending on the ICU version. For example, for this request: ``` SELECT CHAR_LENGTH(CAST(x'f0808080' AS STRING)); ``` On `centos 7` with `libicu-devel-50.2-4.el7_7.x86_64` the result will be: ``` tarantool> box.execute([[SELECT CHAR_LENGTH(CAST(x'f0808080' AS STRING));]]) --- - metadata: - name: COLUMN_1 type: integer rows: - [1] ... ``` On `ubuntu 20.04` with `libicu-dev` version `66.1-2ubuntu2` the result will be: ``` tarantool> box.execute([[SELECT CHAR_LENGTH(CAST(x'f0808080' AS STRING));]]) --- - metadata: - name: COLUMN_1 type: integer rows: - [4] ... ```
-
Mergen Imeev authored
Part of #4145
-
Yaroslav Lobankov authored
This patch extends the 'integration.yml' workflow and adds a new workflow call for running tests to verify integration between tarantool and the tarantool-php/client connector. Part of #5265 Part of #6056 Closes #6594
-
Yaroslav Lobankov authored
This patch extends the 'integration.yml' workflow and adds a new workflow call for running tests to verify integration between tarantool and tarantool-python connector. Part of #5265 Part of #6056 Closes #6584
-
Vladimir Davydov authored
-
Vladimir Davydov authored
-
Vladimir Davydov authored
Instead of writing to the socket fd directly using sio, we wrap it in iostream. This will allow us to use complex communication protocols in iproto. One thing that should be noted about this patch is how we handle ev_io_start when we need to wait for the socket to become readable or writable. Since iostream_write can block because it wants to read from the socket and iostream_read can block because it wants to write to the socket, we might need to update input/output events before ev_io_start. Since ev_io events can't be updated while ev_io is active, we need to stop ev_io for this.
-
Vladimir Davydov authored
It's better than using ev_feed_event and ev_is_active directly. Also, let's use EV_CUSTOM instead EV_READ/EV_WRITE for signaling, to emphasize that this is an artificial event, which has nothing to do with fd read/write readiness. It's okay, because input/output callbacks don't use events at all.
-
Vladimir Davydov authored
It's better than using sio_socketname directly.
-
Vladimir Davydov authored
iproto_connection->input.fd != -1 iff state != IPROTO_CONNECTION_ALIVE. Let's check the state instead of input.fd or output.fd, because it's easier for understanding. While we are at it, drop the stale comment to iproto_connection_is_idle: the function doesn't use evio_has_fd at all.
-
Vladimir Davydov authored
It's not needed - we can use the iostream created in iproto (just like a raw fd).
-
Vladimir Davydov authored
It's not needed - we can use the applier/relay io directly (just like a raw fd).
-