Skip to content
Snippets Groups Projects
  1. Sep 05, 2024
  2. Aug 30, 2024
    • Denis Smirnov's avatar
      feat: unprepare statement references after sql execution · 192bfc43
      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
      192bfc43
  3. Aug 29, 2024
    • Denis Smirnov's avatar
      feat: avoid schema version bump for temporary spaces · 9a8559d8
      Denis Smirnov authored
      Temporary spaces, used for cluster-wide SQL data materialization,
      were causing unnecessary netbox schema version bumps, leading to
      schema downloading via netbox, excessive Lua garbage and GC blocks.
      Since these tables are for internal SQL use, we don't need to inform
      netbox clients about schema changes. We now maintain separate schema
      versions: one for netbox clients and one for the internal prepared
      statement cache.
      
      NO_DOC=picodata internal patch
      NO_CHANGELOG=picodata internal patch
      9a8559d8
  4. Aug 16, 2024
  5. Aug 08, 2024
  6. Jul 26, 2024
  7. 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
      2.11.2.135
      ea85a1ed
    • 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
      65d18f29
    • 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
      8497cb3b
  8. Apr 12, 2024
  9. Mar 25, 2024
  10. Mar 21, 2024
  11. Mar 20, 2024
  12. Mar 15, 2024
  13. Mar 14, 2024
    • godzie44's avatar
      feat: IPROTO traffic encryption · 42654e2e
      godzie44 authored
      Add new transport for IPROTO connections: ssl.
      SSL transport may be configured with (at client and server side):
      - certificate (mandatory at server side)
      - private key (mandatory at server side)
      - password for PK
      - certificate authorities (for peer certificate verification)
      - cipher list
      
      SSL transport also can be used in replication and net.box mechanisms.
      
      @TarantoolBot document
      Title: add IPROTO traffic encryption.
      
      New ssl transport allows
      creating a secure connection between two IPROTO peers.
      TLS protocol using and openssl v1.1 or later required.
      
      To configure traffic encryption, you need to set the
      special URI parameters for a particular connection.
      The parameters can be set for the following box.cfg
      options and nex.box method:
      - box.cfg.listen – on the server side.
      - box.cfg.replication–on the client side.
      - net_box_object.connect()–on the client side.
      42654e2e
  14. Mar 13, 2024
  15. Mar 07, 2024
  16. Mar 06, 2024
  17. Mar 01, 2024
  18. Feb 28, 2024
  19. Feb 22, 2024
  20. Jan 29, 2024
    • Denis Smirnov's avatar
      feat: reserve function id range · 43cdcf7f
      Denis Smirnov authored
      Current commit is a part of the SQL procedures track for Picodata.
      It introduces several features:
      - the reserved id range in the _func space, that can be only consumed
        implicitly;
      - an additional "id" option for function creation with Lua (to set
        the function identifier implicitly);
      - helper function to generate function ids either in reserved or default
        ranges
      
      NO_DOC=internal
      NO_CHANGELOG=internal
      2.11.2.96
      43cdcf7f
  21. Jan 16, 2024
Loading