Skip to content

fix: allow '=' in object path for LOAD DATA#24021

Merged
mergify[bot] merged 4 commits intomatrixorigin:mainfrom
gouhongshen:pr/main-path-allow-equals
Apr 1, 2026
Merged

fix: allow '=' in object path for LOAD DATA#24021
mergify[bot] merged 4 commits intomatrixorigin:mainfrom
gouhongshen:pr/main-path-allow-equals

Conversation

@gouhongshen
Copy link
Copy Markdown
Contributor

@gouhongshen gouhongshen commented Mar 30, 2026

What type of PR is this?

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

Which issue(s) this PR fixes:

issue #10162

What this PR does / why we need it:

Problem

  • Allow = in fileservice path validation for LOAD DATA/external file paths.
  • This supports valid object keys such as sjrq=20200504/... on OSS/S3.

Verification

  • Reproduced and fixed ERROR 20411: invalid file path ... for keys containing =.
  • Verified parquet load flow proceeds past path validation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
(cherry picked from commit 4b84cb0)
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates fileservice path validation to support object keys containing = (e.g., Hive-style k=v/ partitions) so LOAD DATA / external file reads won’t reject valid OSS/S3 paths.

Changes:

  • Allow = in ParsePath file component validation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/fileservice/path.go
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@gouhongshen
Copy link
Copy Markdown
Contributor Author

@mergify requeue

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented Apr 1, 2026

Merge Queue Status

  • Entered queue2026-04-01 07:34 UTC · Rule: main
  • Checks passed · in-place
  • Merged2026-04-01 08:31 UTC · at d3b8bcab18789df4895eba88bae420e43f334c5f

This pull request spent 57 minutes 31 seconds in the queue, including 57 minutes 18 seconds running CI.

Required conditions to merge
  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • branch-protection-review-decision = APPROVED [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Compose CI / multi cn e2e bvt test docker compose(PESSIMISTIC)
    • check-neutral = Matrixone Compose CI / multi cn e2e bvt test docker compose(PESSIMISTIC)
    • check-skipped = Matrixone Compose CI / multi cn e2e bvt test docker compose(PESSIMISTIC)
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Standlone CI / Multi-CN e2e BVT Test on Linux/x64(LAUNCH, PROXY)
    • check-neutral = Matrixone Standlone CI / Multi-CN e2e BVT Test on Linux/x64(LAUNCH, PROXY)
    • check-skipped = Matrixone Standlone CI / Multi-CN e2e BVT Test on Linux/x64(LAUNCH, PROXY)
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Standlone CI / e2e BVT Test on Linux/x64(LAUNCH, PESSIMISTIC)
    • check-neutral = Matrixone Standlone CI / e2e BVT Test on Linux/x64(LAUNCH, PESSIMISTIC)
    • check-skipped = Matrixone Standlone CI / e2e BVT Test on Linux/x64(LAUNCH, PESSIMISTIC)
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone CI / SCA Test on Ubuntu/x86
    • check-neutral = Matrixone CI / SCA Test on Ubuntu/x86
    • check-skipped = Matrixone CI / SCA Test on Ubuntu/x86
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone CI / UT Test on Ubuntu/x86
    • check-neutral = Matrixone CI / UT Test on Ubuntu/x86
    • check-skipped = Matrixone CI / UT Test on Ubuntu/x86
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Compose CI / multi cn e2e bvt test docker compose(Optimistic/PUSH)
    • check-neutral = Matrixone Compose CI / multi cn e2e bvt test docker compose(Optimistic/PUSH)
    • check-skipped = Matrixone Compose CI / multi cn e2e bvt test docker compose(Optimistic/PUSH)
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Standlone CI / e2e BVT Test on Linux/x64(LAUNCH,Optimistic)
    • check-neutral = Matrixone Standlone CI / e2e BVT Test on Linux/x64(LAUNCH,Optimistic)
    • check-skipped = Matrixone Standlone CI / e2e BVT Test on Linux/x64(LAUNCH,Optimistic)
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Upgrade CI / Compatibility Test With Target on Linux/x64(LAUNCH)
    • check-neutral = Matrixone Upgrade CI / Compatibility Test With Target on Linux/x64(LAUNCH)
    • check-skipped = Matrixone Upgrade CI / Compatibility Test With Target on Linux/x64(LAUNCH)
  • any of [🛡 GitHub branch protection]:
    • check-success = Matrixone Utils CI / Coverage
    • check-neutral = Matrixone Utils CI / Coverage
    • check-skipped = Matrixone Utils CI / Coverage

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented Apr 1, 2026

requeue

☑️ This pull request is already queued

@mergify mergify Bot merged commit 8bb4c4e into matrixorigin:main Apr 1, 2026
24 of 25 checks passed
@mergify mergify Bot removed the queued label Apr 1, 2026
fengttt pushed a commit to fengttt/matrixone that referenced this pull request May 7, 2026
### Problem

- Allow `=` in fileservice path validation for LOAD DATA/external file paths.
- This supports valid object keys such as `sjrq=20200504/...` on OSS/S3.

### Verification
- Reproduced and fixed `ERROR 20411: invalid file path ...` for keys containing `=`.
- Verified parquet load flow proceeds past path validation.

Approved by: @XuPeng-SH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/enhancement size/XS Denotes a PR that changes [1, 9] lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants