Commit Graph

4922 Commits

Author SHA1 Message Date
evenyag
69b39e7846 feat: Impl BatchIterator for btree memtable
feat: Impl MapIterWrapper

refactor: Rename RowKey to InnerKey
2022-06-09 17:13:02 +08:00
evenyag
4171173b76 feat: Support creating in memory region and writing to memtable (#40)
* chore(store-api): Fix typo in region comments

* feat(storage): Init storage crate

* feat(store-api): Make some method async

* feat(storage): Blank StorageEngine implementation

* feat(storage): StorageEngine returns owned SchemaRef

* feat: pub use arrow in datatypes

* feat(store-api): Implement RegionMetadata

* feat(storage): Impl create region in memory.

* chore(object-store): Format cargo toml

* chore(storage): Log on region created

* feat: Impl CowCell

* feat: Store id to cf meta mapping

* refactor: Refactor version and rename it to VersionControl

* feat: Impl write batch for put, refactor column family

* feat(storage): Skeleton of writing to memtable

* refactor(storage): MemTable returns MemTableSchema

* feat: Add ColumnSchema and conversion between schema and arrow's schema

* feat: Validate put data

* feat: Valid schema of write batch

* feat: insert memtable WIP

* feat: Impl Inserter for memtable

* feat(datatypes): Implement Eq/Ord for Value

feat: Implement Ord/Eq for Bytes/StringBytes and Deref for Bytes

test: Test Value::from()

* feat: Define BTreeMemTable

* Fix: Rename get/get_unchecked to try_get/get and fix get not consider null.

* feat: Impl BTreeMemTable::write()

* refactor: Remove useless ColumnFamilyHandle now

* chore: Clean comment

* feat(common): Add from `String/&str/Vec<u8>/&[u8]` for Value

* test(storage): Add tests for WriteBatch

* chore: Fix clippy

* feat: Add builder for RowKey/ColumnFamilyDescriptor

* test: Add test for metadata

* chore: Fix clippy

* test: Add test for region and engine

* chore: Fix clippy

* chore: Address CR comment
2022-06-09 16:50:02 +08:00
evenyag
8fe577649f feat: Constructing Bytes/StringBytes from Vec<u8>/&[u8]/String/&str (#41) 2022-06-08 14:25:25 +08:00
dennis zhuang
f7136819fc function crate and scalars function (#39)
* feat: adds scalars mod and enhance vectors

* temp commit

* fix compile error

* Impl pow function with new udf framework

* Adds common-function crate and impl scalars function

* fix: remove used code

* test: adds test for function crate and refactor vectors

* fix: fmt style

* feat: impl numpy.clip function

* feat: improve clip function returning int64 type when arguments do not have float type

* feat: adds more test for vectors

* feat: adds replicate method test for primitive vector

* fix: by code review

* feat: clip function returns uint64 when all arguments type are unsigned

* refactor: improve vectors#only_null

* fix: clippy warning

* fix: clippy warning

* fix: clip should return float64 when arguments have both signed and unsigned types
2022-06-08 13:15:22 +08:00
evenyag
23f235524d feat: Implements validity() and null_count() for Vector (#38)
* feat: Add validity() to Vector

* test(datatypes): Add more tests and fix get_data() not returns None for null
2022-06-01 20:55:58 +08:00
Lei, Huang
fb0585229e refactor: Entry should be a trait (#37) 2022-05-26 11:30:50 +08:00
evenyag
383c55d39c ci: Only trigger ci on pull request (#36) 2022-05-25 10:54:43 +08:00
dennis zhuang
a2331366f6 feat: adds adds register_udf api to query engine and refactor datatypes (#34)
* feat: adds ColumnarValue and refactor vectors

* fix: ConcreteDataType compile error

* feat:adds udf/function mods

* feat: adds test for common_query crate

* feat: adds register_udf api to query engine

* feat: adds common_query::error test

* refactor: by CR comments

* refactor: adds impl_new_concret_type_functions! macro to reduce boilerplate codes

* fix: typo
2022-05-24 16:50:56 +08:00
Lei, Huang
06b592f00f feat: add WAL definitions (#35)
* feat: add WAL definitions

* rename and add some tests
2022-05-24 16:12:23 +08:00
evenyag
1594da337f feat(store-api): Prototype of storage engine api (#33) 2022-05-20 18:51:51 +08:00
Lei, Huang
e75a54b766 feat: impl From arrow array for exsisting vectors (#32)
* feat: impl From arrow array for exsisting vectors

* fix: review comments

* feat: clippy forbid prints
2022-05-19 16:10:00 +08:00
dennis zhuang
b0d2e2e91b feat: adds ConcretDataType and more datatypes impl (#31)
* feat: adds ConcretDataType and impl binary/boolean/null types and vectors

* feat: adds String to ConcretDataType

* docs:  ConcretDataType::from_arrow_type may panic
2022-05-19 11:21:11 +08:00
evenyag
5777732fde feat(store-api): Init store-api crate (#30) 2022-05-18 17:19:57 +08:00
Lei, Huang
519cbc832a feat: add StringVector datatype (#28) 2022-05-18 14:49:36 +08:00
Lei, Huang
bd4fe1f5bc feat: RecordBatch serialization (#26) 2022-05-17 17:01:00 +08:00
evenyag
3d374cce68 feat: implement log related macros (#29) 2022-05-17 16:00:17 +08:00
dennis zhuang
a819b6bce5 feat: impl object-store based on opendal (#27)
* feat: impl object-store based on opendal

* feat: adds s3 test

* feat: export Layer

* feat: pass s3 access key/secret by env vars

* fix: logging when s3 test is running
2022-05-17 15:58:27 +08:00
dennis zhuang
93cbdbee9a feat: adds common-telemetry crate and adds logs/metrics to query engine (#25)
* feat: adds common-telemetry crate and logging mod

* refactor: common telemetry

* feat: adds metric mod and exports metrics by http

* feat: adds metrics to query engine and datanodes

* refactor: rename metrics

* refactor: rename ElapsedTimer struct and elapsed_timer macro

* refactor: log error when fail to new data node.

* fix: use backtrace crate instead of unstable feature

* feat: add must_use attr to Timer

* fix: only reserve Debug attribute for Timer
2022-05-12 17:42:48 +08:00
Lei, Huang
641f4b39bd feat: add serialization support to existing data types (#24)
* feat: add serialization support to existing data types

* fix: refactor errors mod to error. fix other review comments
2022-05-11 17:17:27 +08:00
Lei, Huang
841744e4a3 fix: remove direct unwraps (#23) 2022-05-09 17:50:49 +08:00
Lei, Huang
c07784a614 Update codecov.yml
ci: allow coverage drop by 1%
2022-05-09 17:35:44 +08:00
Lei, Huang
5c72c5ae19 tests: add more unit tests for sql mod (#20)
* test: add more unit tests for sql mod
2022-05-09 15:01:19 +08:00
dennis zhuang
df1a99e27f feat: test http server api (#21)
* feat: adds http server test

* feat: limit sql output to 10 rows
2022-05-09 14:54:03 +08:00
dennis zhuang
8cc10b36db Merge pull request #14 from GrepTimeTeam/refactor-error
refactor: Refactor error usage
2022-05-09 14:17:52 +08:00
evenyag
d5de030600 feat: Add as_any() to opaque error 2022-05-09 12:35:55 +08:00
evenyag
5f48b4996b chore: Address CR comments 2022-05-09 11:52:01 +08:00
evenyag
d2d4d88c89 test: Add MockError and add more tests for error 2022-05-07 17:29:56 +08:00
evenyag
e0c1bbfd21 refactor: Rename errors::ParserError to error::Error 2022-05-07 16:15:05 +08:00
evenyag
fae876ec63 test: Add more test for parser error 2022-05-07 16:07:41 +08:00
evenyag
56258d6821 test: Add more test for opaque error 2022-05-07 15:45:46 +08:00
evenyag
ec63353364 refactor: Move planner and adapters to datafusion mod 2022-05-07 15:27:00 +08:00
evenyag
6a20657591 refactor: query::query_engine::datafusion -> query::datafusion 2022-05-07 14:38:57 +08:00
evenyag
99c7ffb456 refactor: Define error for memory catalog 2022-05-07 14:13:31 +08:00
evenyag
83262acc0e refactor: Add more imports to common_error::prelude 2022-05-07 11:42:33 +08:00
evenyag
63d9aa1bff refactor: Refactor datanode error and impl ErrorExt for it 2022-05-07 11:34:23 +08:00
evenyag
7e2e3e3429 feat: Impl ErrorExt for opaque error and ParseError 2022-05-06 20:04:16 +08:00
evenyag
08ccb466cb fix(query): Remove unnecessary unsafe impl Send/Sync for ExecutionPlanAdapter 2022-05-06 20:04:16 +08:00
evenyag
aa1a6b2205 feat: Add common-error crate and implement opaque error type. 2022-05-06 20:04:14 +08:00
evenyag
bcba7f026f ci: Disable codecov patch and trigger coverage calculation on push (#18)
* ci: Disable codecov patch and trigger coverage calculation on push

* ci: Add comment for codecov.yml
2022-05-06 18:10:35 +08:00
dennis zhuang
f0db878bf5 feat: http server and cmd crate etc. (#15)
* feat: adds cmd crate and http server

* feat: impl sql http handler

* feat: convert all arrow array types

* feat: adds query test

* feat: adds test for datanode

* fix: format

* feat: refactor state.rs

* feat: adds collect test

* fix: by code review

* fix: style
2022-05-06 17:34:29 +08:00
evenyag
ffc4e4eb0c Merge pull request #17 from GrepTimeTeam/ci-code-coverage
ci: Add code coverage for pull requests
2022-05-06 16:45:07 +08:00
evenyag
4c4a150b3a docs: Add code coverage to README 2022-05-06 16:31:45 +08:00
evenyag
45d1edd8e2 ci: Add code coverage for pull requests 2022-05-06 16:06:05 +08:00
Lei, Huang
f889ed5488 feat: INSERT statement and planner implementation (#16)
* feat: Add SQL parser definition and SHOW DATABASE implementation

* chores: Eliminate clippy warnings and errors.

* chores: remove Gt prefix in some structs; rename some mod; remove print(s) in unit tests; refactor crate layout;
feat: wrap sqlparser error;

* chores: reorder cargo dependency

* chores: fix code style

* chores: add #[cfg(test)] to unit tests

* style: fix test mod style

* feat: implement select query parser

* chores: remove unused dependency

* feat: implement TryInto<sqlparser::ast::Statement> for Statement

* chore: fix style issues

* refactor: wrap sqlparser Query inside Query statement variant to reduce complexity

* refactor: replace TryInto to TryFrom

* refactor: use [Rust 2018 mod convention](https://doc.rust-lang.org/edition-guide/rust-2018/path-changes.html#no-more-modrs)

* refactor: remove unnecessary file prefix in statement mod

* feat: implement INSERT parser (currently without INSERT validation)

* feat: wrap DataFusion planner and add simple query planner implementation

* refactor: move planner mod to query crate

* fix: styles and conventions
2022-05-05 16:28:38 +08:00
dennis zhuang
bf331ec4ac feat: impl QueryEngine#execute, adds numbers table and query engine test (#13)
* feat: impl QueryEngine#execute, adds numbers table and query engine test

* fix: clippy warning

* fix: reuse runtime in context in table adapter

* fix: by CR comments
2022-04-27 15:15:26 +08:00
Lei, Huang
12eefc3cd0 feat: implement SELECT query parser. (#12)
* feat: Add SQL parser definition and SHOW DATABASE implementation

* chores: Eliminate clippy warnings and errors.

* chores: remove Gt prefix in some structs; rename some mod; remove print(s) in unit tests; refactor crate layout;
feat: wrap sqlparser error;

* chores: reorder cargo dependency

* chores: fix code style

* chores: add #[cfg(test)] to unit tests

* style: fix test mod style

* feat: implement select query parser

* chores: remove unused dependency

* feat: implement TryInto<sqlparser::ast::Statement> for Statement

* chore: fix style issues

* refactor: wrap sqlparser Query inside Query statement variant to reduce complexity

* refactor: replace TryInto to TryFrom

* refactor: use [Rust 2018 mod convention](https://doc.rust-lang.org/edition-guide/rust-2018/path-changes.html#no-more-modrs)
2022-04-27 15:14:33 +08:00
dennis zhuang
3a2f794f6c feat: query engine impl on datafusion (#10)
* feat: query engine impl on datafusion

* feat: adds physical_optimizer, physical_planner and executor

* feat: impl adpaters between datafuion and greptime query engine core APIs.

* feat: impl PhysicalPlanAdapter and ExecutionPlanAdapter

* feat: rename table datafusion mod to adapter

* fix: clippy warning

* fix: conflicts with develop branch

* feat: add database mod

* fix: CR comment

* fix: by CR comments

* fix: conflicts with develop branch

* fix: by CR comments
2022-04-26 15:17:32 +08:00
dennis zhuang
e334e55bf7 Merge pull request #11 from GrepTimeTeam/feat-datatypes
feat: Implement basic data type framework
2022-04-26 12:28:17 +08:00
evenyag
b505c87e8d refactor: Rename base to common-base 2022-04-26 11:48:22 +08:00
evenyag
58f19b2a33 refactor(datatypes): pub use some types 2022-04-25 17:03:05 +08:00