Skip to content

[fix](load) Pass CSV parser properties to multi-table tasks - #67512

Open
0AyanamiRei wants to merge 1 commit into
apache:masterfrom
0AyanamiRei:fix/doris-25185-multi-table-csv-parser-options
Open

[fix](load) Pass CSV parser properties to multi-table tasks#67512
0AyanamiRei wants to merge 1 commit into
apache:masterfrom
0AyanamiRei:fix/doris-25185-multi-table-csv-parser-options

Conversation

@0AyanamiRei

@0AyanamiRei 0AyanamiRei commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Multi-table Routine Load creates per-table stream-load plans on the backend, but the routine-load task did not carry the CSV enclose, escape, or empty_field_as_null settings. Dynamic-table CSV rows that depend on those settings were therefore parsed with defaults and could fail with column-count mismatches. This change adds optional task fields and preserves the configured values through the backend task context into every per-table planning request. It does not change Routine Load persistence or PAUSE/RESUME behavior.

Release note

Multi-table Routine Load now applies enclose, escape, and empty_field_as_null when parsing CSV data.

Check List (For Author)

  • Test: Unit Test
    • Added FE coverage for the CSV parser properties carried by a multi-table Routine Load task; not run per request
  • Behavior changed: Yes. Multi-table CSV Routine Load tasks pass their configured parser properties to per-table plans.
  • Does this need documentation: No

@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Multi-table Routine Load creates per-table stream-load plans on the backend, but the task request did not carry CSV enclose, escape, or empty-field-as-null settings. As a result, dynamic-table CSV rows that depend on those settings were parsed with defaults. Add optional task fields and preserve them through the backend task context into each per-table planning request.

### Release note

Multi-table Routine Load now applies enclose, escape, and empty_field_as_null when parsing CSV data.

### Check List (For Author)

- Test: Unit Test (added FE task coverage; not run per request)
- Behavior changed: Yes. Multi-table CSV Routine Load tasks pass their configured parser properties to per-table plans.
- Does this need documentation: No
@0AyanamiRei
0AyanamiRei force-pushed the fix/doris-25185-multi-table-csv-parser-options branch from b39f9be to 71b7726 Compare September 3, 2026 21:19
@0AyanamiRei

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 77.69% (2055/2645)
Line Coverage 65.72% (37559/57152)
Region Coverage 52.93% (35020/66167)
Branch Coverage 56.38% (11251/19954)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants