- Jul 07, 2023
-
-
Arseniy Volynets authored
-
- Jul 04, 2023
-
-
Denis Smirnov authored
-
- Jul 03, 2023
-
-
EmirVildanov authored
-
- Jun 30, 2023
-
-
Denis Smirnov authored
-
Denis Smirnov authored
-
Denis Smirnov authored
-
- Jun 28, 2023
-
-
Denis Smirnov authored
-
-
Denis Smirnov authored
-
- Jun 26, 2023
-
-
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.
-
- Jun 21, 2023
-
-
Arseniy Volynets authored
-
- Jun 19, 2023
-
-
Arseniy Volynets authored
-
- Jun 16, 2023
-
-
Emir Vildanov authored
-
- Jun 15, 2023
-
-
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.
-
- Jun 13, 2023
-
-
Arseniy Volynets authored
-
EmirVildanov authored
-
EmirVildanov authored
feat: add support of Exists and NonExists operator, fix bug with selecting columns from VALUES, grammar small fix
-
- Jun 02, 2023
-
-
EmirVildanov authored
-
- May 30, 2023
-
-
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
-
- 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.
-
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.
-
- May 29, 2023
-
-
Arseniy Volynets authored
-
- May 18, 2023
-
-
Maksim Kaitmazian authored
This patch brings stored procedures that manage postgres server.
-
-
- May 15, 2023
-
-
Georgy Moshkin authored
-
- May 12, 2023
-
-
Denis Smirnov authored
-
Denis Smirnov authored
-
Denis Smirnov authored
Make encoded parameters optional. So we can call pico.sql(SQL) without producing an empty Lua table (that would be GCed later).
-
- May 10, 2023
-
-
- May 03, 2023
-
-
- May 02, 2023
-
-
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.
-
- Apr 26, 2023
-
-
Arseniy Volynets authored
We had a flaky test in CI because printing order of keys in Distribution::Segment was random. Changed Hasher to RepeatableState for HashSet in Distribution::Segment
-
- Apr 25, 2023
-
-
Arseniy Volynets authored
-
- Apr 24, 2023
-
-
Emir Vildanov authored
-
Arseniy Volynets authored
-
- Apr 18, 2023
-
-
Arseniy Volynets authored
-
- Apr 13, 2023
-
-