milvus icon indicating copy to clipboard operation
milvus copied to clipboard

feat: expose the Go expr parser to C++ and embed into libmilvus-core.so

Open zhengbuqian opened this issue 2 weeks ago • 33 comments

generated a library that wraps the go expr parser, and embedded that into libmilvus-core.so

issue: https://github.com/milvus-io/milvus/issues/45702

see internal/core/src/plan/milvus_plan_parser.h for the exposed interface

zhengbuqian avatar Nov 19 '25 14:11 zhengbuqian

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: zhengbuqian

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

sre-ci-robot avatar Nov 19 '25 14:11 sre-ci-robot

[ci-v2-notice] Notice: We are gradually rolling out the new ci-v2 system.

  • Legacy CI jobs remain unaffected, you can just ignore ci-v2 if you don't want to run it.
  • Additional "ci-v2/*" checkers will run for this PR to ensure the new ci-v2 system is working as expected.
  • For tests that exist in both v1 and v2, passing in either system is considered PASS.

To rerun ci-v2 checks, comment with:

  • /ci-rerun-code-check // for ci-v2/code-check
  • /ci-rerun-build // for ci-v2/build
  • /ci-rerun-ut-integration // for ci-v2/ut-integration
  • /ci-rerun-ut-go // for ci-v2/ut-go
  • /ci-rerun-ut-cpp // for ci-v2/ut-cpp
  • /ci-rerun-ut // for all ci-v2/ut-integration, ci-v2/ut-go, ci-v2/ut-cpp
  • /ci-rerun-e2e-arm // for ci-v2/e2e-arm

If you have any questions or requests, please contact @zhikunyao.

sre-ci-robot avatar Nov 19 '25 14:11 sre-ci-robot

Codecov Report

:x: Patch coverage is 0% with 35 lines in your changes missing coverage. Please review. :white_check_mark: Project coverage is 82.82%. Comparing base (4b14ab1) to head (3ab2b0f). :warning: Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
internal/core/src/plan/milvus_plan_parser.cpp 0.00% 35 Missing :warning:

:x: Your patch check has failed because the patch coverage (0.00%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           master   #45703       +/-   ##
===========================================
+ Coverage   41.20%   82.82%   +41.61%     
===========================================
  Files        1225      525      -700     
  Lines      194107    82183   -111924     
===========================================
- Hits        79982    68064    -11918     
+ Misses     113790    14119    -99671     
+ Partials      335        0      -335     
Components Coverage Δ
Client ∅ <ø> (∅)
Core 82.82% <0.00%> (-0.04%) :arrow_down:
Go ∅ <ø> (∅)
Files with missing lines Coverage Δ
internal/core/src/plan/milvus_plan_parser.cpp 0.00% <0.00%> (ø)

... and 701 files with indirect coverage changes

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

codecov[bot] avatar Nov 19 '25 15:11 codecov[bot]

@zhengbuqian Thanks for your contribution. Please submit with DCO, see the contributing guide https://github.com/milvus-io/milvus/blob/master/CONTRIBUTING.md#developer-certificate-of-origin-dco.

mergify[bot] avatar Nov 19 '25 16:11 mergify[bot]

/hold, maybe I should pack the parser directly into libmilvus_core.so

zhengbuqian avatar Nov 19 '25 17:11 zhengbuqian

/hold

zhengbuqian avatar Nov 19 '25 17:11 zhengbuqian

/unhold

it is now embedded into libmilvus-core.so, the user only needs to link this single library and can use the expr parser.

zhengbuqian avatar Nov 19 '25 18:11 zhengbuqian

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 19 '25 18:11 mergify[bot]

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 19 '25 18:11 mergify[bot]

[ci-v2-notice] Notice: We are gradually rolling out the new ci-v2 system.

  • Legacy CI jobs remain unaffected, you can just ignore ci-v2 if you don't want to run it.
  • Additional "ci-v2/*" checkers will run for this PR to ensure the new ci-v2 system is working as expected.
  • For tests that exist in both v1 and v2, passing in either system is considered PASS.

To rerun ci-v2 checks, comment with:

  • /ci-rerun-code-check // for ci-v2/code-check
  • /ci-rerun-build // for ci-v2/build
  • /ci-rerun-ut-integration // for ci-v2/ut-integration
  • /ci-rerun-ut-go // for ci-v2/ut-go
  • /ci-rerun-ut-cpp // for ci-v2/ut-cpp
  • /ci-rerun-ut // for all ci-v2/ut-integration, ci-v2/ut-go, ci-v2/ut-cpp
  • /ci-rerun-e2e-arm // for ci-v2/e2e-arm

If you have any questions or requests, please contact @zhikunyao.

sre-ci-robot avatar Nov 20 '25 05:11 sre-ci-robot

rerun go-sdk

zhengbuqian avatar Nov 21 '25 10:11 zhengbuqian

/run-cpu-e2e

zhengbuqian avatar Nov 21 '25 10:11 zhengbuqian

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 21 '25 11:11 mergify[bot]

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 21 '25 12:11 mergify[bot]

/run-cpu-e2e

zhengbuqian avatar Nov 21 '25 16:11 zhengbuqian

rerun go-sdk

zhengbuqian avatar Nov 21 '25 16:11 zhengbuqian

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 21 '25 16:11 mergify[bot]

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 21 '25 16:11 mergify[bot]

rerun go-sdk

zhengbuqian avatar Nov 25 '25 07:11 zhengbuqian

/run-cpu-e2e

zhengbuqian avatar Nov 25 '25 07:11 zhengbuqian

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 25 '25 08:11 mergify[bot]

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 25 '25 09:11 mergify[bot]

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 25 '25 11:11 mergify[bot]

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 25 '25 11:11 mergify[bot]

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 25 '25 12:11 mergify[bot]

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 25 '25 12:11 mergify[bot]

@zhengbuqian cpu-e2e job failed, comment /run-cpu-e2e can trigger the job again.

mergify[bot] avatar Nov 26 '25 03:11 mergify[bot]

@zhengbuqian go-sdk check failed, comment rerun go-sdk can trigger the job again.

mergify[bot] avatar Nov 26 '25 03:11 mergify[bot]

rerun go-sdk

zhengbuqian avatar Nov 26 '25 08:11 zhengbuqian

/run-cpu-e2e

zhengbuqian avatar Nov 26 '25 08:11 zhengbuqian