Skip to content
Snippets Groups Projects
  1. Aug 02, 2023
  2. Jul 31, 2023
  3. Jul 28, 2023
    • Arseniy Volynets's avatar
      feat: introduce sql_vdbe_max_steps, vtable_max_rows options · b3a20a66
      Arseniy Volynets authored
      Option sql_vdbe_max_steps stops long running
      queries from blocking tx thread or queries that 
      use too much memory during local execution. 
      
      Each sql query is compiled into VDBE opcodes on storages. This
      parameter sets max number of opcodes that VDBE
      can execute.
      
      Example: `select * from t option(sql_vdbe_max_steps=1000)`
      
      Option vtable_max_rows limits the maximum number of rows in
      virtual table. This limit is checked on storages before returning
      intermediate results and on routers when receiving results from
      storages.
      
      Example: `select * from t option(vtable_max_rows=1000)`
      b3a20a66
  4. Jul 26, 2023
  5. Jul 21, 2023
  6. Jul 20, 2023
  7. Jul 18, 2023
  8. Jul 14, 2023
  9. Jul 13, 2023
  10. Jul 07, 2023
  11. Jul 04, 2023
  12. Jul 03, 2023
  13. Jun 30, 2023
  14. Jun 28, 2023
  15. 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
  16. Jun 21, 2023
  17. Jun 19, 2023
  18. Jun 16, 2023
  19. 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.
      c64f009b
  20. Jun 13, 2023
  21. Jun 02, 2023
  22. 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
Loading