Skip to content

fix: preserve binary string planner semantics - #26907

Draft
ck89119 wants to merge 20 commits into
matrixorigin:mainfrom
ck89119:issue-25295-binary-planner
Draft

fix: preserve binary string planner semantics#26907
ck89119 wants to merge 20 commits into
matrixorigin:mainfrom
ck89119:issue-25295-binary-planner

Conversation

@ck89119

@ck89119 ck89119 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?

  • API-change
  • BUG
  • Improvement
  • Documentation
  • Feature
  • Test and CI
  • Code Refactoring

Which issue(s) this PR fixes:

issue #25295

What this PR does / why we need it:

This is layer 2 of the replacement for draft PR #26750 and depends on layer 1.
Because the dependency branch lives in a fork, this draft is temporarily cumulative against main; after layer 1 merges, only the planner/scalar commit remains.

It closes planner and scalar-function binary-string semantics:

  • selects byte or character algorithms from the subject argument and selected row;
  • propagates per-row provenance through scalar, conditional, regexp, cast, and string functions;
  • keeps explicit CAST/CONVERT ... AS CHAR as text semantics;
  • infers materialized binary types for CTAS and set operations from expression results;
  • fixes empty binary literal formatting and CHAR(... USING charset) parsing.

Validation:

  • full parser, planner, and function package tests passed;
  • owning-package build and vet passed;
  • focused mixed-row binary/text/NULL/select-list regression passed;
  • CI-equivalent incremental coverage for this layer: 76.27% (707/927).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/bug Something isn't working size/XXL Denotes a PR that changes 2000+ lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants