Skip to content
Snippets Groups Projects
  1. Jun 30, 2023
  2. Jun 28, 2023
  3. Jun 26, 2023
    • Arseniy Volynets's avatar
      feat: support HAVING clause · 095d347b
      Arseniy Volynets authored
      * added HAVING clause. HAVING condition may contain aggregates. Any column outside aggregate function must be part of a grouping expression. 
      
      E.g: `select sum(a) from t group by b having c > 1` Above query is invalid, because `c` is not a grouping expression.
      095d347b
  4. Jun 21, 2023
  5. Jun 19, 2023
  6. Jun 16, 2023
  7. Jun 15, 2023
    • Denis Smirnov's avatar
      feat: non-SQL insert · c64f009b
      Denis Smirnov authored
      Current commit redesigns distributed INSERT command. Previously we
      dispatched insert SQL command to the storages. If INSERT could be
      done locally (without building a virtual table on the router) we
      used SQL "bucket_id(<string>)" function to recalculate buckets
      on the starage via SQL.
      
      This approach had the main disadvantage - it worked only with a
      "bucket_id" SQL function that had a single argument as a parameter.
      An attempt to support multiple parameters of different types (tuple
      columns as we plan to implement for Picodata engine in future) faced
      serious technical problems.
      Also, the old implementation had performance issues:
      - we created temporary spaces on the storage even for a single VALUE
        insertion
      - we always dispatched VALUES to the storage to build a virtual table
      - the resulting SQL was too verbose (as we produced a subquery under
        INSERT node)
      
      It was desided to get rid of the old approach and migrate to non-SQL
      insertion. It means that a new type of motion was introduled - local
      segment. It allows us to build a virtual table on the storage in
      Rust memory, then using space API transform and insert collected tuples
      directly into the target space within a single transaction. Also we
      can materailize VALUES (if they contain only constants) on the router
      and get rid of the redundant network transmission over the network.
      Verified
      c64f009b
  8. Jun 13, 2023
  9. Jun 02, 2023
  10. May 30, 2023
    • Arseniy Volynets's avatar
      fix: invalid Refs in join condition · 05762d16
      Arseniy Volynets authored
      In case we had a join where one of tables under
      Scan had bucket_id column in the middle (not in the end)
      than we incorrectly updated position in ALL references in
      join condition. The correct way is to update references only
      for corresponding join child, which is done in this commit
      05762d16
    • Arseniy Volynets's avatar
      fix: error on join condition "unary and bool" · 4baaf0c7
      Arseniy Volynets authored and Arseniy Volynets's avatar Arseniy Volynets committed
      - Because Unary is also a bool expression, we had
      wrong conflict resolution for join (without single),
      that didn't take into account that bool expression
      may have Unary as one of the children.
      - I also noticed a small bug for single distribution
      in join, fixed it.
      4baaf0c7
    • Arseniy Volynets's avatar
      refactor: simplify 2-stage, remove duplicates · e3aa17d6
      Arseniy Volynets authored
      - Refactor 2-stage aggregation pipeline, so it is easier to read and work with
      - add logic for removing duplicate grouping expressions and aggregates from local stage:
       
      `select sum(a), sum(a) from t` 
      
      We should compute only one aggregate at local stage.
      
      The same goes for grouping expressions: 
      
      `select sum(distinct a) from t group by a`
      
      At local stage we must use `a` only once in projection.
      e3aa17d6
  11. May 29, 2023
  12. May 18, 2023
  13. May 15, 2023
  14. May 12, 2023
  15. May 10, 2023
  16. May 03, 2023
  17. May 02, 2023
    • Denis Smirnov's avatar
      feat(POC): picodata engine · 93685c03
      Denis Smirnov authored
      Implement the picodata engine for sbroad to integrate distributed
      SQL into the picodata binary. In fact, picodata engine simple
      exports public rust functions from api.rs. On the picodata side
      they (and some lua functions) are imported and included into the
      bunary on the build phase.
      
      Current commit is POC and have some problems:
      - DDL is still not implemented in the picodata (_pico_space is mocked);
      - we include tarantool module symbols twice (first time in sbroad,
        second time in picodata binary);
      
      But anyway, it works and all these problems should be solved in the
      next commits.
      Verified
      93685c03
  18. Apr 26, 2023
  19. Apr 25, 2023
  20. Apr 24, 2023
  21. Apr 18, 2023
  22. Apr 13, 2023
  23. Apr 11, 2023
Loading