-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement indexes (currently only unique indexes are supported) (#65)
* feat: implement `DataValue::to_index_key` * feat: implement `Index` and encoding in `TableCodec` * feat: implementing when create table, detect the unique field and create a unique index for it * feat: when inserting data, it will check whether the field has a corresponding unique index, insert the index and check whether it already exists * feat: Processing of unique indexes when adding update and delete * feat: Processing of unique indexes when truncate * style: rename Table -> Transaction, Transaction -> Iter * feat: added `ScalarExpression::convert_binary` used to extract the constant binary expression information corresponding to Column in the condition of the where clause * style: code optimization * feat: Implement RBO rule -> `SimplifyFilter` * test: add test case for simplification.rs * feat: add RBO Rule`SimplifyFilter` * perf: `ConstantBinary::scope_aggregation` Fusion of marginal values with values within a range * feat: implement `ConstantBinary::rearrange` constant folding -> expression extraction -> aggregation (and) -> rearrangement (or) * fix: `ConstantBinary::scope_aggregation` selection of Eq/NotEq and Scope * fix: `ConstantBinary::scope_aggregation` the eq condition only aggregates one * feat: add RBO Rule`PushPredicateIntoScan` * feat: implement `IndexScan` * feat: implement offset and limit for `IndexScan` * fix: many bugs - RBO Rule: `PushProjectThroughChild`: fixed the problem of missing fields when pushing down - RBO Rule: `PushLimitThroughJoin`: fixed the problem that when the on condition in Join generates multiple same number of connection rows, the limit limit is exceeded. - * fix: resolve merge conflicts * style: code format * fix: check or in `c1 > c2 or c1 > 1` * docs: supplementary index related * perf: `ScalarExpression::check_or` optimize implementation * feat: implemented for Decimal type `DataValue::to_index_key` * perf: Optimized `DataValue` conversion to bitwise sequence * perf: optimized `DataValue::Utf8` convert to encoding of primary/unique key * refactor: reconstruct the Key encoding of each structure of TableCodec #68
- Loading branch information
Showing
45 changed files
with
3,020 additions
and
665 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.