* Split segcore and plan proto for future feature
Signed-off-by: fluorinedog <fluorinedog@gmail.com>
* lint
Signed-off-by: fluorinedog <fluorinedog@gmail.com>
* IVF_SQ8 and IVF_PQ cannot be built on multiple GPUs
Signed-off-by: shengjun.li <shengjun.li@zilliz.com>
* index created by std::make_shared
Signed-off-by: shengjun.li <shengjun.li@zilliz.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>
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>
When the remaining space is empty, the zero size allocation will
get the pointer `end_`. However, `cudafree` the pointer `end_` will
cause to crash.
Fix: #5078#4770#4412#4340#3646
Signed-off-by: shengjun.li <shengjun.li@zilliz.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