Skip to content
Snippets Groups Projects
  1. Aug 29, 2024
    • Denis Smirnov's avatar
      feat: unprepare statement references after sql execution · 6f66f07e
      Denis Smirnov authored
      Picodata SQL now manages the Tarantool statement cache using a
      dedicated SQL fiber that handles preparation and unpreparation of
      statements based on an LRU eviction policy. Prepared statements
      can be executed across different sessions by SQL clients.
      
      Previously, when a client executed a prepared statement, it
      increased the reference count in the statement cache and linked
      the statement to the client's session. While this approach seemed
      fine, it caused issues during eviction, as references to these
      statements remained in client sessions, preventing proper eviction.
      
      This commit addresses the issue by ensuring that if a statement is
      added to the current session during execution, it is removed and
      the session state is restored once execution is complete.
      
      NO_DOC=internal
      NO_CHANGELOG=internal
      Verified
      6f66f07e
  2. Aug 16, 2024
  3. Aug 08, 2024
  4. Aug 02, 2024
  5. Jul 30, 2024
  6. Jul 29, 2024
  7. Jul 26, 2024
  8. Jul 25, 2024
  9. Jul 24, 2024
  10. Jul 23, 2024
  11. Jul 19, 2024
    • Nikolay Shirokovskiy's avatar
      core: build fix for recent gcc · 6da92ae2
      Nikolay Shirokovskiy authored and Dmitry Ivanov's avatar Dmitry Ivanov committed
      ```
      /home/shiny/dev/tarantool/src/lib/core/coio_task.c:114:58:
      	error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument
      	and not in the later argument [-Werror=calloc-transposed-args]
        114 |         struct cord *cord = (struct cord *)calloc(sizeof(struct cord), 1);
      ```
      
      NO_TEST=build fix
      NO_CHANGELOG=build fix
      NO_DOC=build fix
      6da92ae2
  12. Jul 03, 2024
  13. Jul 01, 2024
    • Denis Smirnov's avatar
      refactor!: replace sql_prepare with sql_prepare_ext symbol · ea85a1ed
      Denis Smirnov authored
      BREAKING CHANGE!:
      1. remove sql_prepare from the export list;
      2. introduce sql_prepare_ext.
      
      The sql_prepare symbol previously included the tarantool port as
      an output parameter. However, this structure was inconvenient for
      libraries using the C API, as they primarily required just the
      statement ID. To address this issue, the sql_prepare symbol was
      replaced with the sql_prepare_ext symbol.
      
      NO_DOC=picodata internal patch
      NO_CHANGELOG=picodata internal patch
    • Denis Smirnov's avatar
      feat: share prepared statements among sessions · 65d18f29
      Denis Smirnov authored
      Previously, users with multiple connections to tarantool instance
      couldn't share prepared statements across sessions. They had to
      manually call prepare in each session before execution.
      
      This commit automates this process for the exported version of
      SQL prepared statement execution (sql_execute_prepared_ext symbol).
      Original Lua execution keeps the old behavior for backward
      compatibility.
      
      NO_DOC=picodata internal patch
      NO_CHANGELOG=picodata internal patch
      NO_TEST=picodata internal patch
      Verified
      65d18f29
    • Denis Smirnov's avatar
      refactor: reorder arguments in SQL execution functions · bfcfb978
      Denis Smirnov authored
      Previously, sql_prepare_and_execute and sql_execute_prepared
      functions didn't follow a convention to keep output parameters
      (the port to be exact) at the end of the argument list.
      
      NO_DOC=picodata internal patch
      NO_CHANGELOG=picodata internal patch
      NO_TEST=picodata internal patch
      Verified
      bfcfb978
    • Denis Smirnov's avatar
      refactor!: change exported C API for SQL · 8497cb3b
      Denis Smirnov authored
      BREAKING CHANGE!:
      1. sql_bind_list_decode - removed
      2. sql_execute_prepared_ext - new arguments
      3. sql_prepare_and_execute_ext - exported
      
      There were several reasons to refactor the API.
      1. sql_bind_list_decode (decodes message pack parameters into
         internal C bind structure) is very difficult to use without
         memory leaks (as it allocates results on fiber()->gc).
      2. sql_execute_prepared_ext missed vdbe step limit in parameters
         and used the default value.
      3. Sometimes SQL queries don't fit into prepared statement cache
         and the user still wants to execute them via a slow pass with
         full compilations from the query text. That was the reason to
         export sql_prepare_and_execute_ext symbol.
      
      NO_DOC=internal
      NO_TEST=internal
      NO_CHANGELOG=internal
      Verified
      8497cb3b
  14. May 31, 2024
  15. May 23, 2024
    • Dmitry Ivanov's avatar
      fix(sql): remove dead code from sql_trigger_begin · a021afc3
      Dmitry Ivanov authored
      NO_DOC=internal
      NO_TEST=internal
      NO_CHANGELOG=internal
      
      The following commit introduced a tautological if expression:
      
      ```gitcommit
      sql: introduce structs assembling DDL arguments during parsing (ba56b145fafaa3)
      ```
      
      Due to the changes in commit
      
      ```gitcommit
      sql: refactor memory allocation system (cb777136dd7a0c)
      ```
      
      the allocations in sql expressions became infallible, which means
      that we may safely fix static analysis warnings by dropping the
      tautological comparison altogether.
      
      Original patch by Feodor Alexandrov.
      a021afc3
  16. May 17, 2024
  17. May 15, 2024
    • Dmitry Ivanov's avatar
      fix(build): add missing headers to libsasl · 3b437079
      Dmitry Ivanov authored
      NO_DOC=internal
      NO_TEST=internal
      NO_CHANGELOG=internal
      
      This patch fixes the following problem at build time:
      
      cyrus-sasl-2.1.28/lib/saslutil.c:280:3: error: implicit declaration of function 'time' [-Wimplicit-function-declaration]
      280 |   time(&now);
          |   ^~~~
      cyrus-sasl-2.1.28/lib/saslutil.c:66:1: note: 'time' is defined in header '<time.h>'; this is probably fixable by adding '#include <time.h>'
       65 | #include "saslint.h"
      +++ |+#include <time.h>
       66 | #include <saslutil.h>
      cyrus-sasl-2.1.28/lib/saslutil.c: In function 'getranddata':
      cyrus-sasl-2.1.28/lib/saslutil.c:364:41: error: implicit declaration of function 'clock' [-Wimplicit-function-declaration]
      364 |             ret[1] ^= (unsigned short) (clock() & 0xFFFF);
          |                                         ^~~~~
      cyrus-sasl-2.1.28/lib/saslutil.c:364:41: note: 'clock' is defined in header '<time.h>'; this is probably fixable by adding '#include <time.h>'
      cyrus-sasl-2.1.28/lib/saslutil.c: In function 'get_fqhostname':
      cyrus-sasl-2.1.28/lib/saslutil.c:563:42: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
      563 |         || strlen (result->ai_canonname) > namelen -1) {
          |                                          ^
      make[9]: *** [Makefile:643: saslutil.lo] Error 1
      3b437079
    • Dmitry Ivanov's avatar
      fix(build): update libldap to 2.6.7 (mostly to satisfy gcc 14) · 4b543f25
      Dmitry Ivanov authored
      NO_DOC=internal
      NO_TEST=internal
      NO_CHANGELOG=internal
      
      This patch fixes the following problem at build time:
      
      checking for regex.h... yes
      checking for library containing regfree... none required
      checking for compatible POSIX regex... no
      configure: error: broken POSIX regex!
      4b543f25
  18. May 03, 2024
  19. Apr 12, 2024
  20. Apr 10, 2024
  21. Apr 02, 2024
Loading