When loading a partition, QueryNode fetches the binlogs need to be
loaded and the channels needed to be watched by GetRecoveryInfo
Signed-off-by: sunby <bingyi.sun@zilliz.com>
Datanode send `SaveBinlogPath` request after every segment flush finish
with the binlog paths and dml/ddl position. But the flush of segments is
not sorted. So we sort the segments according to segment id and find the
largest segment id with not nil dml position which is the position of
the msgstream to recover.
Signed-off-by: sunby <bingyi.sun@zilliz.com>
* Split segcore and plan proto for future feature
Signed-off-by: fluorinedog <fluorinedog@gmail.com>
* lint
Signed-off-by: fluorinedog <fluorinedog@gmail.com>
Adding a dummy RPC makes it easier to develop new RPCs in the future.
When developing a new function, the SDK is often implemented last.
At this time, this is helpful for debugging.
Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com>
Proxy node send channel timetick msg to master, master reduce timetick
msg for each channel and send the min timetick to msg stream.
Resolves: #5276
Signed-off-by: yudong.cai <yudong.cai@zilliz.com>
query base on timeline, add timestamp on these queries:
- ShowCollections
- HasCollection
- DescribeCollection
Resolves: #5219
Signed-off-by: yefu.chen <yefu.chen@zilliz.com>
Updata PhysicalChannelNames and VirtualChannelNames based
on ShardsNum when create collection, and update collVChan2Chan
map.
Resolves: #5240
Signed-off-by: yudong.cai <yudong.cai@zilliz.com>
Pass a parameter `IsExpr` from proxy to query node, so query
node can create search plan according to the variable `IsExpr`.
It makes `segcore` unnecessary to distinguish `dsl` or `expr`
using dynamic exception. When `IsExpr` is set to true, query
node will call `CreatePlanByExpr` according to the passed
information about expression. Otherwise query node will keep
still to use `CreatePlan` according to the `dsl` information. At
the same time, this pr adds some unittests to `CreatePlanByExpr`,
these unittests translate already exist case with `dsl` to case with
`expr`.
Signed-off-by: dragondriver <jiquan.long@zilliz.com>
1. Support Term, like `A in [1, 2, 3]`
2. Support Not, like `! A < 3`
3. Support logical combination, like `A < 3 && B > 5 or C == 0`
Type: Feature
Signed-off-by: fluorinedog <fluorinedog@gmail.com>
**What type of PR is this?**
- [x] Feature
**What this PR does / why we need it:**
This PR supports boolean expression as DSL.
1. The goal of this PR is to support predicates
like `A > 3 && not B < 5 or C in [1, 2, 3]`.
2. Defines `plan.proto`, as Intermediate Representation (IR)
used between go and cpp.
3. Support expr parser, convert predicate expr to IR
in proxynode, while doing static check there
4. Support IR to AST in cpp, enable the execution