Skip to content

Bug#120580: Keep ignorable prefix characters in string range candidates - #786

Open
DerZc wants to merge 1 commit into
mysql:trunkfrom
DerZc:fix-bug-120580
Open

DerZc wants to merge 1 commit into
mysql:trunkfrom
DerZc:fix-bug-120580

Conversation

@DerZc

@DerZc DerZc commented Sep 28, 2026 •

Copy link
Copy Markdown

What does this change do?

A partial key containing only primary-ignorable characters can sort below its complete value. For the affected utf8mb4_0900_ai_ci prefix range, retain all non-NULL candidates and recheck the full comparison. Update the MyISAM and InnoDB ICP EXPLAIN expectations for the widened scan bounds; query-result rows remain unchanged.

Bug report: https://bugs.mysql.com/bug.php?id=120580

Why is it needed?

The affected execution path returns a different query result from the equivalent reference. The change preserves the expression or access-path semantics described above.

How was it tested?

On trunk at a1ef44f1d327b940a763b25eee2c6e146a0ebdb0:

  • The unmodified server fails the new regression with a result mismatch.

  • The patched server builds successfully.

  • 40 query-result checks pass against separately established expected results, including repeated prepared statements.

  • Native MTR passes: main.bug_120580, main.select_count, main.range_all, main.range_icp_mrr, main.innodb_icp, main.myisam_icp.

  • The regression passes with the prepared-statement protocol.

  • The full database regression suite was not run.

  • Added MTR coverage under mysql-test/.

  • Ran scripts/ci/mtr.sh with its default selection; the explicit native and related tests above were run instead.

  • Ran the full database regression suite.

Contributor checklist

  • Changed C++ files are formatted with the repository .clang-format.
  • One focused commit with a descriptive message.

AI assistance

  • I did not use AI assistance for this contribution.
  • I used AI assistance for this contribution.

OpenAI Codex assisted with implementation, regression test generation and review. The submitted change was checked with compilation, execution against independently established expected results, a failing unpatched regression, and the MTR tests listed above. No human review is claimed by these automated checks.

Areas touched

mysql-test, sql

@DerZc
DerZc requested a review from a team September 28, 2026 06:25
@oracle-contributor-agreement

Copy link
Copy Markdown

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
The following contributors of this PR have not signed the OCA:

To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application.

When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated.

If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Sep 28, 2026
@github-actions github-actions Bot added Optimizer Changes touching optimizer code Tests Changes touching test code or test data labels Sep 28, 2026
A partial key containing only primary-ignorable characters can sort
below its complete value. For the affected utf8mb4_0900_ai_ci prefix
range, retain all non-NULL candidates and recheck the full comparison.
Update the MyISAM and InnoDB ICP EXPLAIN expectations for the widened
scan bounds; query-result rows remain unchanged.

Add native regressions for the reported query, equivalent controls, and
repeated prepared-statement execution. Preserve observable results
across the affected execution paths.

Bug report: https://bugs.mysql.com/bug.php?id=120580
@github-actions github-actions Bot added the Build Passed PR build passed label Sep 28, 2026
@oracle-contributor-agreement

Copy link
Copy Markdown

Thank you for signing the OCA.

@oracle-contributor-agreement oracle-contributor-agreement Bot added OCA Verified All contributors have signed the Oracle Contributor Agreement. and removed OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. labels Sep 28, 2026
@github-actions github-actions Bot added the Review Requested Review requested from code owners label Sep 28, 2026
@RidhaOracle

Copy link
Copy Markdown
Member

/codex

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

✅ Codex PR Review completed successfully!

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by Codex PR Review for #786

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the five changed files at 1f867a14; no high-confidence actionable defects found. The widened lower bound retains non-NULL candidates and marks the range inexact for full predicate filtering. The regression coverage and updated ICP expectations are consistent with that behavior.

Static review only: PR code and tests were not executed.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by Codex PR Review for #786 · codex · gpt60 · 98.8 AIC · ⌖ 23.7 AIC · ⊞ 14K
Comment /codex to run again

@github-actions github-actions Bot added the MTR Failed MTR suite failed label Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build Passed PR build passed MTR Failed MTR suite failed OCA Verified All contributors have signed the Oracle Contributor Agreement. Optimizer Changes touching optimizer code Review Requested Review requested from code owners Tests Changes touching test code or test data

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants