Yingwen
04afee216e
feat(procedure): Support multi-lock keys and querying procedure state from context ( #1006 )
...
* feat: Add ContextProvider to Context
So procedures can query states of other procedures via the
ContextProvider and they don't need to hold a ProcedureManagerRef
* feat: Procedure supports acquring multiple lock keys
* test: Use multi-locks in test
* feat: Add keys_to_lock/unlock
2023-02-15 18:04:19 +08:00
Ning Sun
cd0d58cb24
fix: correct date/time type format for postgresql ( #1001 )
...
* fix: correct date/time type format for postgresql
* fix: tests for timestamp
* refactor: use Utc datetime for timestamp::to_chrono_datetime
* Update src/servers/Cargo.toml
Co-authored-by: LFC <bayinamine@gmail.com >
---------
Co-authored-by: LFC <bayinamine@gmail.com >
2023-02-15 09:40:16 +00:00
yuanbohan
8b869642b8
feat: update promql-parser to v0.1.0 ( #994 )
...
feat: update promql-parser version to v0.1.0
2023-02-15 17:23:59 +08:00
Ruihang Xia
dfe7bfb07f
feat: handle PromQL HTTP API parameters ( #985 )
...
* feat: impl EvalStmt parser
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix compile errors
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update test result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add integration test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* resolve CR comments
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* impl From<PromqlQuery> for PromQuery
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* move format into with_context
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update test result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* shorthand compound error
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* use rfc3339 error to report float parsing error
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove CompoundError
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-02-15 17:15:44 +08:00
shuiyisong
e17d564bf0
feat: add client tls option to channel manager config ( #999 )
...
* feat: add client tls to channel manager config
* chore: move test to tests folder
* chore: fix license issue
* chore: fix cr issue
2023-02-15 16:02:27 +08:00
fys
e2904b99ac
feat: add retry logic for MetaPeerClient ( #991 )
...
* add retry logic in meta_peer_client
* impl need_retry function
* create meta_peer_client using the builder pattern
* cr
2023-02-15 14:12:53 +08:00
Lei, HUANG
374acc8830
feat: compaction reader and writer ( #972 )
...
* feat: compaction reader and writer
* feat: make ParquetWrite accept both memtable iterator and chunk reader
* feat: adapt ParquetWriter to accomodate ChunkReaderImpl
* chore: rebase develop
* wip: compile
* wip: task logic
* feat: version and manifest update
* fix: remove useless as_inner from Timestamp vectors
* feat: mark file compacting
* fix: unit test
* fix: clippy warnings
* fix: CR comment
* chore: according to cr comments, remove visit_levels from LevelMetas
* fix: some CR comments
* fix: add PlainTimestampRowFilter for correctness
* fix: cr comments
* fix: some typos
2023-02-14 17:32:00 +08:00
LFC
9ad6c45913
test: Sqlness tests for distribute mode ( #979 )
...
* test: Sqlness tests for distribute mode
* ci
* fix: resolve PR comments
* fix: resolve PR comments
2023-02-14 10:24:09 +08:00
fys
c1a9f84c7f
feat: meta provides the ability to distribute lock ( #961 )
...
* add DistLock trait and a implement based etcd
wip
impl lock grpc service for meta-srv
reuse the etcd client instead of repeatedly creating etcd client
add some docs and comments
add some comment
meta client support distribute lock
fix: dead lock
self-cr
* cr
* rename "expire" -> "expire_secs"
2023-02-13 15:58:30 +08:00
Yingwen
be897efd01
feat: Execute procedure in LocalManager ( #953 )
...
* feat: Runner executes procedure
* feat: Add rollback key type to ParsedKey
* feat: Write rollback key when procedure is unable to execute
* feat: Use loaded step to re-submit subprocedure
* feat: Track subprocedures in ProcedureMeta
* feat: Clean message cache after the root procedure is done
* feat: Runner returns execution result
* fix: Fix tests
* test: Test Runner
* test: Test procedures_in_tree
* chore: Refine test and comments
* feat: Remove support of lock inheritance
A deadlock happens if a subprocedure acquires the same lock key as
its parent.
The main concern is if the subprocedure directly inherits its parent's
lock, then how should we behave when multiple subprocedures acquire
this same lock? Each procedure may assume it has unique access to the
same object but it actually shares the resource with others.
Now subprocedures need to use different keys to lock objects, which is
reasonable. For example:
- A parent procedure wants to create a table so it locks the table with
a key like `catalog.schema.table`
- Subprocedures create regions for the table so they lock the regions
with keys `catalog.schema.table.region-0 ~ catalog.schema.table.region-n`
* style: Fix clippy
* feat: insert_procedure returns false on duplicate procedure
Also rename this method to try_insert_procedure
* chore: Address CR comments
2023-02-13 10:38:56 +08:00
Ruihang Xia
4c925e0079
chore(deps): bump promql-parser ( #968 )
...
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-02-10 14:12:55 +08:00
LFC
c6128ec0a4
refactor: use remote proto ( #963 )
...
* refactor: use remote proto (see our new repo "GreptimeTeam/greptime-proto")
* fix: resolve PR comments
2023-02-10 13:35:18 +08:00
shuiyisong
9989a8c192
fix: check full table name during logical plan creation ( #948 )
2023-02-09 17:23:28 +08:00
Lei, HUANG
1e9918ddf9
feat: compaction scheduler and rate limiter ( #947 )
...
* wip: compaction schdduler
* feat: imple simple compaction scheduler
* fix: typo
* feat: add generic parameter to make scheduler friendly to tests
* chore: add more tests
* fix: CR comments
* fix: CR comments
* fix: ensure idempotency for rate limit token
* fix: Cr ct omments
2023-02-09 11:43:20 +08:00
Ning Sun
83d57f9111
fix: setting postgres query context ( #958 )
2023-02-08 16:34:10 +08:00
LFC
803b7f0633
feat: implement "drop table" in distributed mode (both in SQL and gRPC) ( #944 )
...
* feat: implement "drop table" in distributed mode (both in SQL and gRPC)
refactor: create distributed table
some details:
- set table global value in Meta, as well as table routes value. Datanode only set table regional value
- complete instance SQL tests both in standalone and distributed mode
* fix: rebase develop
* fix: resolve PR comments
2023-02-08 07:36:38 +00:00
elijah
926022e14c
feat: enable caching when using object store ( #928 )
...
* feat: enable caching when using object store
* feat: support file cache for object store
* feat: maintaining the cached files with lru
* fix: improve the code
* empty commit
* improve the code
2023-02-07 15:46:37 +08:00
Lei, HUANG
5d62e193bd
feat: support multi regions on datanode ( #653 )
...
* wip: fix compile errors
* chore: move splitter to partition crate
* fix: remove useless variants in frontend errors
* chore: move more partition related code to partition manager
* fix: license header
* wip: move WriteSplitter to PartitionRuleManager
* fix: clippy warnings
* chore: remove useless error variant and format toml
* fix: cr comments
* chore: resolve conflicts
* chore: rebase develop
* fix: cr comments
* feat: support multi regions on datanode
* chore: rebase onto develop
* chore: rebase develop
* chore: rebase develop
* wip
* fix: compile errors
* feat: multi region
* fix: CR comments
* feat: allow stat existing regions without actually open it
* fix: use table meta in manifest to recover region info
2023-02-07 10:46:18 +08:00
Ning Sun
4ae63b7089
feat: Initial prepare statement support for Postgres protocol ( #925 )
...
* feat: add describe statement to query_engine
* feat: add ability to describe statement for sql handler
* refactor: return schema instead of wrapped ref
* test: resolve tests
* feat: add initial support for prepared statements
* feat: add parameter types to query statement
* test: fix parser test
* chore: add todo task
* fix: turn on integer_datetime for binary timestamp
* fix: format string using single quote
* test: add tests for prepared statement
* Apply suggestions from code review
Co-authored-by: LFC <bayinamine@gmail.com >
* refactor: use stream api from recordbatches
---------
Co-authored-by: LFC <bayinamine@gmail.com >
2023-02-06 22:06:00 +08:00
LFC
af935671b2
feat: support "use" in GRPC requests ( #922 )
...
* feat: support "use catalog and schema"(behave like the "use" in MySQL) in GRPC requests
* fix: rebase develop
2023-02-02 20:02:56 +08:00
Yingwen
74adb077bc
feat: Implement ProcedureStore ( #927 )
...
* test: Add more tests for ProcedureId
* feat: Add ObjectStore based state store
* feat: Implement ProcedureStore
* test: Add tests for ParsedKey
* refactor: Rename list to walk_top_down
* fix: Test ProcedureStore and handles unordered key values.
* style: Fix clippy
* docs: Update comment
* chore: Adjust log level for printing invalid key
2023-02-02 17:49:31 +08:00
Ruihang Xia
ea5146762a
chore(deps): bump promql-parser ( #929 )
...
* fix promql crate
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* migrate to new api
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix aggregator test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix styles
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-02-02 07:31:41 +00:00
Lei, HUANG
028a69e349
refactor: move partition related code to partition manager ( #906 )
...
* wip: fix compile errors
* chore: move splitter to partition crate
* fix: remove useless variants in frontend errors
* chore: move more partition related code to partition manager
* fix: license header
* wip: move WriteSplitter to PartitionRuleManager
* fix: clippy warnings
* chore: remove useless error variant and format toml
* fix: cr comments
* chore: resolve conflicts
* chore: rebase develop
* fix: cr comments
2023-02-01 19:24:49 +08:00
Ning Sun
39df25a8f6
refactor: make postgres handler stateful ( #914 )
...
* feat: update pgwire to 0.8 and unify postgres handler
* fix: correct password message matching
2023-01-31 14:19:18 +08:00
Yingwen
b2ad0e972b
feat: Define procedure related traits ( #904 )
...
* chore: Move uuid to workspace.dependencies
* feat: Define procedure related traits
* test: Add tests
* chore: Update imports
* feat: Submit ProcedureWithId to manager
* chore: pub ProcedureId::parse_str
* refactor: ProcedureId::parse_str returns Result
* chore: Address CR comments
Also implements FromStr for ProcedureId
2023-01-31 14:17:28 +08:00
Yun Chen
a7dc86ffe5
feat: oss storage support ( #911 )
...
* feat: add oss storage support
* fix: ci build format check
* fix: align OSS to Oss
* fix: cr comments
* fix: rename OSS to Oss in integration tests
* fix: clippy fix
2023-01-29 20:09:38 +08:00
shuiyisong
aafc26c788
feat: add mysql reject_no_database ( #896 )
...
* chore: update opensrv-mysql to main
* refactor: change mysql server struct
* feat: add option to reject no database mysql connection request
* chore: remove unused condition
* chore: rebase develop
* chore: make reject_no_database optional
2023-01-29 04:09:47 +00:00
Ruihang Xia
36a13dafb7
build(deps): bump tokio to 1.24.2 ( #900 )
...
deps: bump tokio to 1.24.2
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-29 11:13:37 +08:00
dependabot[bot]
ae8afd3711
build(deps): bump bzip2 from 0.4.3 to 0.4.4 ( #898 )
...
Bumps [bzip2](https://github.com/alexcrichton/bzip2-rs ) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/alexcrichton/bzip2-rs/releases )
- [Commits](https://github.com/alexcrichton/bzip2-rs/commits/0.4.4 )
---
updated-dependencies:
- dependency-name: bzip2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-28 21:08:03 +08:00
Lei, HUANG
43aefc5d74
feat: prunine sst files according to time range in filters ( #887 )
...
* 1. Reimplement Eq for Timestamp
2. Add and/or for GenericRange
* feat: extract time range from filters
* feat: select sst files according to time range
* fix: clippy
* fix: empty value in range
* fix: some cr comments
* fix: return optional timestamp range
* fix: cr comments
2023-01-28 15:16:41 +08:00
shuiyisong
6960739b3d
feat: add authorize to UserProvider trait ( #879 )
...
* feat: add SchemaValidator
* feat: add schema validator to mysql shim
* chore: pass schema validator to http auth layer
* feat: add schema validator to http
* feat: add schema validator to pg
* feat: add schema validator to pg
* feat: add schema validator test
* chore: remove println in test
* chore: use !matches
* refactor: refac authenticate and authorize in http auth
* refactor: refac authenticate and authorize in http auth
* chore: typo
* chore: minor change
* refactor: merge schema_validator into user_providier
* chore: fix license issue
* refactor: change http query param from database to db
* chore: fix cr issue
2023-01-18 12:42:08 +08:00
fys
6f5639fccd
feat: add load_based selector in meta ( #874 )
...
* fix: wrong error info
* add derive hash for StatKey
* add a attrs field in Context
* add load_based selector
* add license
* make Nodestat module public
* add meta startup config item about selector
* cr: remove attrs, add concrete type in context
* cr: change region_number type to Option<u64>
* cr: add comment in example.toml
* cr
2023-01-17 10:25:00 +08:00
Ruihang Xia
1e9d09099e
feat: update promql-parser to commit fec3c8b ( #881 )
...
deps: update promql-parser to commit fec3c8b
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-16 17:55:44 +08:00
Lei, HUANG
daad38360f
fix: impl total order for Timestamp ( #878 )
...
* 1. Reimplement Eq for Timestamp
2. Add and/or for GenericRange
* chore: add test for TimestampRange with diff unit
* chore: optimize split implementation
* fix: clippy
* fix: add fast path
* fix: CR comments
2023-01-16 17:37:30 +08:00
discord9
e428a84446
feat: use Python Script as UDF in SQL ( #839 )
...
* feat: reg PyScript as UDF
* refactor: use `ConcreteDataType` instead
* fix: accept `str` data type
* fix: allow binary to capture SIGINT
* test: add test for py udf
* Update src/servers/tests/py_script/mod.rs
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* style: clippy problem
* style: add newline
* chore: PR advices
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-13 14:35:03 +08:00
Ruihang Xia
a9b42b436d
feat: PromQL handler in query engine ( #861 )
...
* example promql test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* make the mock test works
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update planner test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippys
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add license header
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-11 11:31:07 +08:00
dennis zhuang
9428e70971
feat: integration test ( #770 )
...
* feat: add insert test cases
* fix: update results after rebase develop
* feat: supports unsigned integer types and big_insert test
* test: add insert_invalid test
* feat: supports time index constraint for bigint type
* chore: time index column at last
* test: adds more order, limit test
* fix: style
* feat: adds numbers table in standable memory catalog mode
* feat: enable fail_fast and test_filter in sqlness
* feat: add more tests
* fix: test_filter
* test: add alter tests
* feat: supports if_not_exists when create database
* test: filter_push_down and catalog test
* fix: compile error
* fix: delete output file
* chore: ignore integration test output in git
* test: update all integration test results
* fix: by code review
* chore: revert .gitignore
* feat: sort the show tables/databases results
* chore: remove issue link
* fix: compile error and code format after rebase
* test: update all integration test results
2023-01-10 18:15:50 +08:00
Ruihang Xia
32d51947a4
refactor: adjust outermost error message ( #859 )
...
* refactor: adjust outermost error message
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* preserve tonic status code
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-10 17:28:27 +08:00
Lei, HUANG
90fcaa8487
feat: expose wal config ( #852 )
...
* feat: wal config
* fix: use human-readable string in wal config
* feat: copy ReadableSize and humanize size config items in toml files
* fix: clippy
2023-01-10 16:07:26 +08:00
Ruihang Xia
1305924423
ci: add sqlness job ( #835 )
...
* ci: add sqlness job
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness to official release
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* filter out backtrace
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix error display
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* close once_cell feature gate
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-10 15:12:20 +08:00
LFC
72f05a3137
feat: flight aboard ( #840 )
...
feat: replace old GRPC interface with Arrow Flight
2023-01-09 17:06:24 +08:00
Ruihang Xia
2679faf911
refactor: move parse methods out of QueryEngine trait ( #850 )
...
* refactor: move parse methods out of QueryEngine trait
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix styles
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* change style
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add license header
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix test literal
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-09 15:44:20 +08:00
Xuanwo
777a3182c5
feat: Bump OpenDAL to 0.24 for better seekable support ( #847 )
...
* deps: Bump OpenDAL to 0.24 for better seekable support
Signed-off-by: Xuanwo <github@xuanwo.io >
* fix: test
Signed-off-by: Xuanwo <github@xuanwo.io >
Co-authored-by: Lei, HUANG <mrsatangel@gmail.com >
2023-01-09 11:37:43 +08:00
Jiachun Feng
ca7ed67dc5
feat: collect stats from heartbeats ( #833 )
...
* feat: collect stats from heartbeats
* chore: refactor and improve the keep_lease_handler
* Update src/meta-srv/src/handler/collect_stats_handler.rs
Co-authored-by: fys <40801205+Fengys123@users.noreply.github.com >
2023-01-06 11:30:23 +08:00
Lei, HUANG
8f5ecefc90
feat: use raft-engine crate to reimplement logstore ( #799 )
...
* chore: remove useless method in Entry trait, add proto definition for entry and namespace
* feat: add proto definition for raft-engine based logstore
* feat: introduce RaftEngineLogstore
* feat: impl read for raft engine log store
* feat: impl raft engine logstore
* feat: raft engine logstore start and stop
* feat: add purge bg task
* fix: license header
* fix: clippy
* fix: toml files
* feat: add some test cases
* fix: CR comments
* fix: CR comments
* fix: check namespace validity and state of logstore
* fix: CR comments; add config item to control sync/async flush per write
* fix: remove unused error variants
* fix: unit tests
* fix: use compare and exchange to stop logstore
* fix: CR comments
2023-01-05 17:18:51 +08:00
Ruihang Xia
afd9866709
feat: basic promql planner for single arg function call ( #828 )
...
* wip: draft planner
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* handle function args
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* a simple test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* list all operators that accept 1 instant vector as input
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* simplify test cases
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* clean up
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update cargo lock
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* CR suggessions
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* CR suggessions
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* change the way to handle metric name
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-01-05 16:30:54 +08:00
LFC
50cc0e9b51
feat: Impl Insert functionality of Arrow Flight service for Frontend Instance ( #821 )
...
* feat: Implement Insert functionality of Arrow Flight service for Frontend Instance
* fix: update license content
* Update src/common/grpc-expr/src/alter.rs
Co-authored-by: fys <40801205+Fengys123@users.noreply.github.com >
* fix: resolve PR comments
* fix: resolve PR comments
Co-authored-by: fys <40801205+Fengys123@users.noreply.github.com >
2023-01-04 17:48:59 +08:00
Ruihang Xia
f907a93b97
feat: impl RangeArray based on DictionaryArray ( #796 )
...
* feat: impl RangeArray based on DictionaryArray
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippys
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* apply review suggs
* fix typo
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update license header
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* Apply suggestions from code review
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
* update doc to change i32 to u32
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2023-01-03 18:04:26 +08:00
discord9
6fe205f3b5
chore: Update RustPython(With GC) ( #809 )
...
* chore: use newest RustPython
* chore: use Garbage collected RustPython Fork
* style: format toml
2022-12-30 16:55:43 +08:00
LFC
de6803d253
feat: handle InsertRequest(formerly InsertExpr) in new Arrow Flight ( #800 )
...
feat: handle InsertRequest(formerly InsertExpr) in new Arrow Flight interface
2022-12-30 10:24:09 +08:00