Skip to content
Snippets Groups Projects
  1. May 28, 2024
  2. May 27, 2024
  3. May 08, 2024
  4. May 06, 2024
  5. Apr 22, 2024
  6. Apr 16, 2024
    • Arseniy Volynets's avatar
      feat: support datetime type in sql · a2143d90
      Arseniy Volynets authored and Denis Smirnov's avatar Denis Smirnov committed
      - update sbroad submodule with support of
      datetime type and new `to_date` builtin
      function.
      - initialize sbroad builtin functions in
      init common. Currently there is only one
      builtin function `to_date`
      - add integration tests for datetime types
      - update tarantool module to commit with
      fixes for datetime deserialization
      a2143d90
  7. Apr 12, 2024
  8. Apr 10, 2024
  9. Mar 07, 2024
  10. Mar 04, 2024
    • Arseniy Volynets's avatar
      feat: support rename procedure from sql · dd17afb3
      Arseniy Volynets authored
      - add new ddl opcode for renaming procedure
      - update sbroad submodule to get sql support
      - syntax:
      
      alter procedure "foo" rename to "bar" option(timeout=3)
      alter procedure "foo"(int, int) rename to "bar"
      dd17afb3
  11. Feb 26, 2024
  12. Feb 22, 2024
  13. Feb 20, 2024
    • Arseniy Volynets's avatar
      refactor: move tracing from sbroad to picodata · 598ffbf4
      Arseniy Volynets authored
      - Update sbroad submodule to commit,
      with refactored tracing api: tracer
      can be provided by library user (us).
      - Use tracer that creates traces under
      admin, because traces are created randomly
      for 1% of the queries and the user may not
      have the privileges to create/modify tracing
      tables
      - Move tracing related logic to picodata repo.
      In particular, now all tables storing tracing
      - Add sql tests that were removed from sbroad
      during refactoring
      - added extra parameter 'query_id' to pico.sql
      lua api. 'query_id' is used to identify
      each query in tracing tables, if not specified
      hash function on query text is used.
      - changed signature of pico.sql to:
      pico.sql(pattern[, params, options)
      options={'traceable'=boolean,'query_id'=string}
      598ffbf4
  14. Feb 06, 2024
  15. Jan 22, 2024
  16. Jan 19, 2024
  17. Nov 28, 2023
  18. Nov 20, 2023
  19. Nov 10, 2023
    • Dmitry Ivanov's avatar
      feat: implement audit log (initial patch) · ba967f50
      Dmitry Ivanov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Implemented:
      
      - features:
          * FFI wrappers for `say.{h,c}`
          * safe logger object on top of FFI definitions
          * unified tlog/audit definitions for formatting
          * fixed a needless allocation in tlog (new root per each line)
      
      - events:
          * create_user
          * drop_user
          * create_role
          * drop_role
          * change_password
          * grant_privilege
          * revoke_privilege
          * create_table
          * drop_table
          * grant_role
          * revoke_role
      
      Todo:
      
      - features:
          * unique id generation
          * security subject (who executed the action)
          * audit configuration (via `pico.audit` function)
      
      - well-defined events:
          * create_database (universe)
          * change_config
          * change_current_grade
      
      - special events (local to each node):
          * auth_ok / auth_fail
          * access_denied (still not sure if we absolutely need that)
          * audit_rotate
      
      - Unavailable (haven't been defined yet):
          * rename_user
          * create_procedure
          * drop_procedure
      
      Example:
      
      ```
      $ cat /tmp/audit.log
      2023-11-10 12:07:19.457 [15735] main/103/interactive I> audit log is ready, title: initialize_audit
      2023-11-10 12:07:19.457 [15735] main/103/interactive I> database is starting, title: startup
      2023-11-10 12:07:19.818 [15741] main/103/interactive I> audit log is ready, title: initialize_audit
      2023-11-10 12:07:19.818 [15741] main/103/interactive I> database is starting, title: startup
      2023-11-10 12:07:34.910 [15741] main/111/raft_main_loop storage.rs:2809 W> created user `KEK`, auth_type: chap-sha1, title: create_user
      2023-11-10 12:07:52.869 [15741] main/111/raft_main_loop storage.rs:2861 W> created role `mgr`, title: create_role
      2023-11-10 12:07:55.602 [15741] main/111/raft_main_loop storage.rs:2861 W> created role `kek`, title: create_role
      2023-11-10 12:07:57.594 [15741] main/111/raft_main_loop storage.rs:2906 W> granted role `mgr` to role `kek`, title: grant_role
      2023-11-10 12:08:08.482 [15741] main/111/raft_main_loop storage.rs:2913 W> granted privilege execute on universe `` to role `kek`, title: grant_privilege
      ```
      ba967f50
  20. Nov 07, 2023
  21. Nov 01, 2023
    • Denis Smirnov's avatar
      feat!: implement entrypoints for PG extended protocol · efeb345c
      Denis Smirnov authored
      
      BREAKING CHANGE!:
      - pico.trace() function was removed. Use pico.sql() for tracing;
      - opentelemetry tables __SBROAD_STAT and __SBROAD_QUERY were renamed
        into _SQL_STAT and _SQL_QUERY tables.
      
      Introduce enrypoints for extended PG protocol:
      
      - pg_bind: bind parameters to portal (IR) by descriptor;
      - pg_close: remove portal from the storage by descriptor;
      - pg_describe: get the portal metadata and type by descriptor;
      - pg_execute: execute portal by descriptor;
      - pg_parse: parse an SQL pattern into IR (reusing LRU),
        save IR into portal storage and return the descriptor;
      - pg_portals: get a list of portal descriptors visible
        to the current user;
      
      Co-authored-by: default avatarKaitmazian Maksim <m.kaitmazian@picodata.io>
      Verified
      efeb345c
  22. Oct 31, 2023
  23. Oct 26, 2023
  24. Sep 19, 2023
  25. Aug 29, 2023
  26. Aug 03, 2023
  27. Jul 21, 2023
  28. Jul 14, 2023
  29. May 12, 2023
    • Denis Smirnov's avatar
      feat: improve pico.sql function · 7be08d9c
      Denis Smirnov authored
      Now it is possible to make the second argument (query parameters)
      optional. I.e. now we support 'pico.sql([[select * from t]])' as
      well as 'pico.sql([[select * from t where a = ?]], {1})'.
      Verified
      7be08d9c
Loading