tidb icon indicating copy to clipboard operation
tidb copied to clipboard

Push down json_contains to tikv

Open lizhenhuan opened this issue 3 years ago • 5 comments

What problem does this PR solve?

Issue Number: close #37839

Problem Summary: Implement json_contains function push down to tikv

What is changed and how it works?

Check List

Tests

  • [x] Unit test
  • [x] Integration test
  • [ ] Manual test (add detailed scripts or steps below)
  • [ ] No code

Side effects

  • [ ] Performance regression: Consumes more CPU
  • [ ] Performance regression: Consumes more Memory
  • [ ] Breaking backward compatibility

Documentation

  • [ ] Affects user behaviors
  • [ ] Contains syntax changes
  • [ ] Contains variable changes
  • [ ] Contains experimental features
  • [ ] Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

None

lizhenhuan avatar Sep 15 '22 04:09 lizhenhuan

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • xhebox
  • xiongjiwei

To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment. After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.

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

Reviewer can indicate their review by submitting an approval review. Reviewer can cancel approval by submitting a request changes review.

ti-chi-bot avatar Sep 15 '22 04:09 ti-chi-bot

image

lizhenhuan avatar Sep 15 '22 04:09 lizhenhuan

/run-mysql-test

lizhenhuan avatar Sep 21 '22 01:09 lizhenhuan

/run-mysql-test

lizhenhuan avatar Sep 22 '22 04:09 lizhenhuan

/run-mysql-test

lizhenhuan avatar Sep 28 '22 07:09 lizhenhuan

/run-all-tests

mengxin9014 avatar Sep 28 '22 08:09 mengxin9014

The MySQL test failed, because the following SQL has different behavior after pushdown:

create table t1 (f1 json);
insert into t1 values ('{"a":"b"}')
SELECT 1 FROM t1 WHERE f1 LIKE json_contains('key2' ,'key4' );

Before this PR, it returns ERROR 3141 (json format error). With this PR, it returns ERROR 1105 (unknown error). I guess there are some problems in the unistore, but not sure. PTAL

YangKeao avatar Sep 29 '22 10:09 YangKeao

/run-all-tests

YangKeao avatar Sep 29 '22 11:09 YangKeao

The MySQL test failed, because the following SQL has different behavior after pushdown:

create table t1 (f1 json);
SELECT 1 FROM t1 WHERE f1 LIKE json_contains('key2' ,'key4' );

Before this PR, it returns ERROR 3141 (json format error). With this PR, it returns ERROR 1105 (unknown error). I guess there are some problems in the unistore, but not sure. PTAL

https://github.com/pingcap/tidb/pull/38257 could fix this problem.

YangKeao avatar Sep 29 '22 13:09 YangKeao

/run-all-tests

lizhenhuan avatar Sep 30 '22 08:09 lizhenhuan

/run-all-tests

YangKeao avatar Sep 30 '22 09:09 YangKeao

/run-mysql-test tidb-test=pr/1991

YangKeao avatar Sep 30 '22 09:09 YangKeao

/run-mysql-test tidb-test=pr/1991

YangKeao avatar Sep 30 '22 09:09 YangKeao

/run-mysql-test tidb-test=pr/1991

YangKeao avatar Sep 30 '22 09:09 YangKeao

/run-mysql-test tidb-test=pr/1991

lizhenhuan avatar Oct 03 '22 03:10 lizhenhuan

@YangKeao: Thanks for your review. The bot only counts approvals from reviewers and higher roles in list, but you're still welcome to leave your comments.

In response to this:

LGTM

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

ti-chi-bot avatar Oct 13 '22 06:10 ti-chi-bot

/cc @xiongjiwei @xhebox

YangKeao avatar Oct 13 '22 06:10 YangKeao

/merge

xiongjiwei avatar Oct 13 '22 06:10 xiongjiwei

@xiongjiwei: /merge in this pull request requires 2 approval(s).

In response to this:

/merge

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

ti-chi-bot avatar Oct 13 '22 06:10 ti-chi-bot

/merge

xhebox avatar Oct 13 '22 06:10 xhebox

This pull request has been accepted and is ready to merge.

Commit hash: ca4d430b8005fe4062b9f420b4393f101b24b0fc

ti-chi-bot avatar Oct 13 '22 06:10 ti-chi-bot

/run-mysql-test tidb-test=pr/1991

YangKeao avatar Oct 13 '22 07:10 YangKeao

/tests

YangKeao avatar Oct 13 '22 07:10 YangKeao

/run-mysql-test tidb-test=pr/1991

lizhenhuan avatar Oct 13 '22 09:10 lizhenhuan

TiDB MergeCI notify

🔴 Bad News! New failing [3] after this pr merged. These new failed integration tests seem to be caused by the current PR, please try to fix these new failed integration tests, thanks!

CI Name Result Duration Compare with Parent commit
idc-jenkins-ci-tidb/integration-common-test 🟥 failed 3, success 14, total 17 12 min New failing
idc-jenkins-ci-tidb/tics-test 🟥 failed 1, success 0, total 1 9 min 9 sec New failing
idc-jenkins-ci-tidb/common-test 🟥 failed 1, success 10, total 11 8 min 46 sec New failing
idc-jenkins-ci/integration-cdc-test 🟢 all 37 tests passed 27 min Existing passed
idc-jenkins-ci-tidb/integration-ddl-test 🟢 all 6 tests passed 25 min Existing passed
idc-jenkins-ci-tidb/sqllogic-test-2 🟢 all 28 tests passed 5 min 27 sec Existing passed
idc-jenkins-ci-tidb/sqllogic-test-1 🟢 all 26 tests passed 4 min 36 sec Existing passed
idc-jenkins-ci-tidb/mybatis-test 🟢 all 1 tests passed 3 min 6 sec Existing passed
idc-jenkins-ci-tidb/integration-compatibility-test 🟢 all 1 tests passed 2 min 36 sec Existing passed
idc-jenkins-ci-tidb/plugin-test 🟢 build success, plugin test success 4min Existing passed

sre-bot avatar Oct 13 '22 09:10 sre-bot