This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-4.2 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 7bded76141a3a221fbaa23ce6e9ebb5eac2ba368 Author: Jack <[email protected]> AuthorDate: Sun Sep 20 19:49:48 2026 +0800 branch-4.1: [test](regression) Stabilize search score cache test #65894 (#68252) ### What problem does this PR solve? Issue Number: N/A Related PR: #65894 Problem Summary: Backport of apache/doris#65894 to `branch-4.1`. Test-only change. `search/test_search_score_cache` fails intermittently when the regression cluster runs with fuzzy session variables. `SessionVariable.initFuzzyModeVariables()` randomizes the VARIANT defaults used at CREATE TABLE time: doc mode is enabled with 50% probability, and `default_variant_doc_materialization_min_rows` is then set to `nextInt(20)` with 50% probability. The suite inserts only 8 rows, so whenever the threshold lands in 9..19 the `host` path is kept only in the doc-value column, is not materialized as a subcolumn and gets no inverted index. `CAST(v["host"] AS STRING) MATCH_PHRASE ...` then falls back to the non-index match path, no BM25 scorer runs, `score()` is filled with 0 and the `score() > 0` assertion fails at `test_search_score_cache.groovy:24 / :36 / :189`. The backport pins the three VARIANT session variables before CREATE TABLE so `v.host` is always materialized as an indexed subcolumn. It is unrelated to the inverted index query cache. Source PR: https://github.com/apache/doris/pull/65894 Source commit: `1197ae1fa9800b7026317e3bd2fd2f26b527053b` (squash merge, single parent), picked with `git cherry-pick -x`, no conflict, original author preserved. No revert or follow-up fix of #65894 exists on master. #66858 later touched the same suite, but it is the "Variant V2 by default" feature, not a fix of this change, and is not part of this backport. ### Backport hunk audit | # | Source file and hunk | Result | Target evidence | | --- | --- | --- | --- | | 1 | `regression-test/suites/search/test_search_score_cache.groovy @@ -43,6 +43,11 @@ suite("test_search_score_cache", "p0") {` | Ported (verbatim) | Target context lines 43-46 are identical to the source; the resulting hunk is byte-for-byte equal to the source diff. All three session variables exist in `SessionVariable.java` on `branch-4.1`. | ### Verification Format, compile and unit tests do not apply: the only changed file is a Groovy regression suite. Because the source PR changes a regression suite, the suite was actually run on the target branch. Cluster: single FE + single BE, shared-nothing, fuzzy session variables off, binaries `doris-4.1.4-rc04` (built from branch-4.1 on 2026-09-16; the change is test-only, so no rebuild is needed). Command: `./run-regression-test.sh --run --conf <conf> -d search -s test_search_score_cache`. | Step | Setup | Result | | --- | --- | --- | | RED | Unpatched suite from `origin/branch-4.1`; `set global default_variant_enable_doc_mode=true`, `default_variant_max_subcolumns_count=0`, `default_variant_doc_materialization_min_rows=10` | `Test 1 suites, failed 1 suites`; stack `test_search_score_cache.groovy:24` -> `:36` -> `:189`. The table is created with `variant_enable_doc_mode=true`, `variant_doc_materialization_min_rows=10`; the score query returns ids 4 and 2 with `score() = 0`; BE logs `collection_statistics.cpp:63] Index statistics collection failed: [E-6003] ... No index with id ...`. | | GREEN | This PR's suite, same forced globals | `Test 1 suites, failed 0 suites` | | GREEN | This PR's suite, default globals | `Test 1 suites, failed 0 suites` | ### Release note None ### Check List (For Author) - Test - [x] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason - Behavior changed: - [x] No. - [ ] Yes. - Does this need documentation? - [x] No. - [ ] Yes. ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label Co-authored-by: liangj777 <[email protected]> --- regression-test/suites/search/test_search_score_cache.groovy | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/regression-test/suites/search/test_search_score_cache.groovy b/regression-test/suites/search/test_search_score_cache.groovy index caa3259195d..5c393980a5e 100644 --- a/regression-test/suites/search/test_search_score_cache.groovy +++ b/regression-test/suites/search/test_search_score_cache.groovy @@ -43,6 +43,11 @@ suite("test_search_score_cache", "p0") { """) } + // Keep v.host materialized as an indexed scalar subcolumn so score() can collect BM25. + sql """ set default_variant_enable_doc_mode = false """ + sql """ set default_variant_max_subcolumns_count = 0 """ + sql """ set default_variant_doc_materialization_min_rows = 0 """ + sql "DROP TABLE IF EXISTS ${tableName}" sql """ CREATE TABLE ${tableName} ( --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
