Skip to content

executor: tiny optimize import into from select performance (#60384) - #70287

Open
ti-chi-bot wants to merge 2 commits into
pingcap:release-8.5from
ti-chi-bot:cherry-pick-60384-to-release-8.5
Open

ti-chi-bot wants to merge 2 commits into
pingcap:release-8.5from
ti-chi-bot:cherry-pick-60384-to-release-8.5

Conversation

@ti-chi-bot

@ti-chi-bot ti-chi-bot commented Aug 3, 2026 •

Copy link
Copy Markdown
Member

This is an automated cherry-pick of #60384

What problem does this PR solve?

Issue Number: ref #60377, close #60373

Problem Summary: tiny optimize import into from select performance

What changed and how does it work?

Tiny fix for better pipeline.

Manual test:

  1. prepare:
sysbench --config-file=sysbench.conf oltp_point_select --tables=2 --table-size=10000 --threads=2 prepare

CREATE TABLE `t` (
  `id` int(11) NOT NULL,
  `k` int(11) NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  `id2` int(11) NOT NULL,
  `k2` int(11) NOT NULL DEFAULT '0',
  `c2` char(120) NOT NULL DEFAULT '',
  `pad2` char(60) NOT NULL DEFAULT '',
  KEY `k_1` (`k`)
);

Before:

> import into t from select * from sbtest1 join sbtest2 where sbtest2.id <=2000 with thread=16,DISABLE_PRECHECK;
Query OK, 20000000 rows affected
Time: 94.425s

related tidb log:

[2025/04/03 01:24:12.759 +08:00] [INFO] [chunk_process.go:334] ["process chunk completed"] [table=t] [import-id=431840f5-f697-4b3b-8093-e8dcb329d77a] [key=import-from-select] [readDur=43.395559463s] [encodeDur=9.013400878s] [checksum="{cksum=1539544195137435216,size=563438023,kvs=2499458}"] [deliverDur=1.608033096s] [type=query] [takeTime=53.673599639s] []

The readDur has 43.39s.

[readDur=43.395559463s] [encodeDur=9.013400878s] [checksum="{cksum=1539544195137435216,size=563438023,kvs=2499458}"] [deliverDur=1.608033096s] [type=query] [takeTime=53.673599639s] 

This PR:

> import into t from select * from sbtest1 join sbtest2 where sbtest2.id <=2000 with thread=16,DISABLE_PRECHECK;
Query OK, 20000000 rows affected
Time: 59.718s

related tidb log:

[2025/04/03 01:26:32.376 +08:00] [INFO] [chunk_process.go:361] ["process chunk completed"] [table=t] [import-id=6bee0397-56b5-4e8b-9383-43f5e8593f22] [key=import-from-select] [readDur=6.501533276s] [encodeDur=9.75518629s] [checksum="{cksum=4058046773982146946,size=564270116,kvs=2503168}"] [deliverDur=1.788105169s] [type=query] [takeTime=18.361915694s] []

The readDur only has 6.5s.

[readDur=6.501533276s] [encodeDur=9.75518629s] [checksum="{cksum=4058046773982146946,size=564270116,kvs=2503168}"] [deliverDur=1.788105169s] [type=query] [takeTime=18.361915694s]

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No need to test
    • I checked and no code files have been changed.

Side effects

  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Breaking backward compatibility

Documentation

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

None

Summary by CodeRabbit

  • Performance

    • Improved data import processing by streaming query results in batches, reducing per-row processing overhead.
    • Added dynamic batch sizing to efficiently handle varying result volumes and improve throughput.
  • Reliability

    • Improved cancellation handling while importing streamed results.
    • Preserved row offsets across batches for consistent imported data.
    • Improved handling of completed or interrupted result streams during imports.

Signed-off-by: ti-chi-bot <ti-community-prow-bot@tidb.io>
@ti-chi-bot ti-chi-bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. type/cherry-pick-for-release-8.5 This PR is cherry-picked to release-8.5 from a source PR. labels Aug 3, 2026
@ti-chi-bot

Copy link
Copy Markdown
Member Author

@crazycs520 This PR has conflicts, I have hold it.
Please resolve them or ask others to resolve them, then comment /unhold to remove the hold label.

@ti-chi-bot

ti-chi-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

This cherry pick PR is for a release branch and has not yet been approved by triage owners.
Adding the do-not-merge/cherry-pick-not-approved label.

To merge this cherry pick:

  1. It must be LGTMed and approved by the reviewers firstly.
  2. For pull requests to TiDB-x branches, it must have no failed tests.
  3. AFTER it has lgtm and approved labels, please wait for the cherry-pick merging approval from triage owners.
Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@ti-chi-bot

ti-chi-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

@ti-chi-bot: ## If you want to know how to resolve it, please read the guide in TiDB Dev Guide.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

@ti-chi-bot

ti-chi-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign lance6716 for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The import-from-select path now streams buffered QueryChunk batches. The importer reads rows from each chunk, converts them with field metadata, and derives row IDs from chunk offsets. Tests now provide typed chunks instead of individual rows.

Changes

Chunk-based import streaming

Layer / File(s) Summary
Chunk production and importer wiring
pkg/executor/import_into.go, pkg/executor/importer/table_import.go, pkg/executor/importer/engine_process.go
The select executor produces adaptive-capacity QueryChunk batches on a buffered channel. TableImporter and the query data-source path consume the renamed chunk channel.
Chunk reader and processor integration
pkg/executor/importer/chunk_process.go
queryChunkEncodeReader iterates rows within chunks, converts rows using field metadata, and derives IDs from RowIDOffset. Query processor construction now accepts the chunk channel.
Chunk-based test setup and build support
pkg/executor/importer/BUILD.bazel, pkg/executor/importer/importer_testkit_test.go, pkg/executor/importer/table_import_testkit_test.go
Tests construct typed chunks with row offsets and close the chunk channels. The Bazel target adds the chunk utility dependency.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SelectExecutor
  participant TableImporter
  participant QueryChunkProcessor
  participant KVEncoder
  SelectExecutor->>TableImporter: send QueryChunk batches
  TableImporter->>QueryChunkProcessor: pass chunk channel
  QueryChunkProcessor->>KVEncoder: encode rows converted from chunks
  SelectExecutor->>TableImporter: close chunk channel
Loading

Possibly related PRs

  • pingcap/tidb#70271: Both changes modify the importer chunk-processing pipeline.
  • pingcap/tidb#70288: Both changes modify pkg/executor/importer/chunk_process.go to process QueryChunk batches.

Suggested reviewers: d3hunter, gmhdbjd

Poem

I hop through chunks of data bright,
With offsets lined in rows just right.
The channel streams, then closes clean,
Each datum takes its encoded sheen.
A rabbit cheers the faster scene! 🐇

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the executor performance optimization for IMPORT INTO ... FROM SELECT.
Description check ✅ Passed The description includes the issue reference, problem, implementation summary, manual test steps, results, checklists, and release note.
Linked Issues check ✅ Passed The chunk-based pipeline addresses duplicate CastValue work and the CPU-saving objective in [#60373].
Out of Scope Changes check ✅ Passed The code, test, and build changes are limited to the import-from-select performance optimization.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.12.2)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/executor/importer/chunk_process.go (1)

110-136: 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

Resolve all unresolved Git merge-conflict markers left by the cherry-pick.

This automated cherry-pick of #60384 into release-8.5 left literal <<<<<<< HEAD / ======= / >>>>>>> markers in five locations across three files. None of these files compile as shown. This matches the PR's held status pending conflict resolution; resolve each site by keeping the chunk-based (QueryChunk) branch and removing the row-based (QueryRow) branch and the markers.

  • pkg/executor/importer/chunk_process.go#L110-L136: in readRow, keep the r.currChk = currChk; r.cursor = 0; r.numRows = ... branch and drop the old QueryRow-based rowToEncode branch.
  • pkg/executor/importer/chunk_process.go#L545-L552: in newQueryChunkProcessor, keep the chunkCh chan QueryChunk, encoder KVEncoder signature and drop the rowCh chan QueryRow, encoder *TableKVEncoder signature.
  • pkg/executor/importer/importer_testkit_test.go#L41-L45: keep the mysql import needed for mysql.TypeLong, and confirm whether pmodel is still required elsewhere in the file.
  • pkg/executor/importer/importer_testkit_test.go#L333-L390: in the "query chunk" subtest, keep the chkCh/QueryChunk-based setup and drop the old rowsCh/QueryRow-based setup.
  • pkg/executor/importer/table_import_testkit_test.go#L27-L38: keep the mysql import needed for mysql.TypeLong; pmodel remains required elsewhere in this file (lines 71, 73, 78, 81), so keep it too.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/executor/importer/chunk_process.go` around lines 110 - 136, Resolve all
merge-conflict markers by retaining the QueryChunk implementation: in
pkg/executor/importer/chunk_process.go ranges 110-136 and 545-552, keep the
chunk state updates in readRow and the chunkCh chan QueryChunk, encoder
KVEncoder signature; in pkg/executor/importer/importer_testkit_test.go ranges
41-45 and 333-390, keep the mysql import, preserve pmodel only if used
elsewhere, and retain the chkCh/QueryChunk query-chunk subtest setup; in
pkg/executor/importer/table_import_testkit_test.go range 27-38, keep both mysql
and pmodel imports, removing the obsolete QueryRow branches and all conflict
markers.
🧹 Nitpick comments (2)
pkg/executor/importer/table_import.go (1)

634-637: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Update the stale doc comment on SetSelectedChunkCh.

The comment still says the setter "sets the channel to receive selected rows." The channel now carries QueryChunk batches, not individual rows. Update the wording to describe chunks.

📝 Proposed doc comment fix
-// SetSelectedChunkCh sets the channel to receive selected rows.
+// SetSelectedChunkCh sets the channel to receive selected query-result chunks.
 func (ti *TableImporter) SetSelectedChunkCh(ch chan QueryChunk) {
 	ti.chunkCh = ch
 }
Based on learnings, "Keep exported-symbol doc comments, and prefer semantic constraints over name restatement."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/executor/importer/table_import.go` around lines 634 - 637, Update the
exported SetSelectedChunkCh method’s doc comment to describe that it configures
the channel for receiving QueryChunk batches, replacing the stale reference to
individual selected rows while preserving the setter implementation.

Source: Coding guidelines

pkg/executor/importer/chunk_process.go (1)

149-155: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Rename queryRowEncodeReader to reflect chunk-based behavior.

queryRowEncodeReader wraps queryChunkEncodeReader and consumes a chan QueryChunk, not individual rows. Keeping the "Row" name next to the "Chunk"-named type it wraps is confusing for future readers.

♻️ Proposed rename
-// queryRowEncodeReader wraps a queryChunkEncodeReader as a encodeReaderFn.
-func queryRowEncodeReader(chunkCh <-chan QueryChunk) encodeReaderFn {
+// queryChunkEncodeReaderFn wraps a queryChunkEncodeReader as an encodeReaderFn.
+func queryChunkEncodeReaderFn(chunkCh <-chan QueryChunk) encodeReaderFn {
 	reader := queryChunkEncodeReader{chunkCh: chunkCh}
 	return func(ctx context.Context) (data rowToEncode, closed bool, err error) {
 		return reader.readRow(ctx)
 	}
 }
Based on learnings, Go code "SHOULD be self-documenting through clear naming and structure."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/executor/importer/chunk_process.go` around lines 149 - 155, Rename
queryRowEncodeReader to a chunk-oriented name that matches
queryChunkEncodeReader and its QueryChunk channel input, and update every
reference to the function accordingly. Preserve its wrapper behavior and return
signature unchanged.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pkg/executor/importer/chunk_process.go`:
- Around line 138-147: Update the rowToEncode construction in the query-row path
to set startPos explicitly to the -1 sentinel, preserving “not applicable”
diagnostics for encode failures. Add a brief comment beside the rowID expression
in this block explaining that r.cursor is incremented first and therefore
represents the 1-based position within the chunk.

---

Outside diff comments:
In `@pkg/executor/importer/chunk_process.go`:
- Around line 110-136: Resolve all merge-conflict markers by retaining the
QueryChunk implementation: in pkg/executor/importer/chunk_process.go ranges
110-136 and 545-552, keep the chunk state updates in readRow and the chunkCh
chan QueryChunk, encoder KVEncoder signature; in
pkg/executor/importer/importer_testkit_test.go ranges 41-45 and 333-390, keep
the mysql import, preserve pmodel only if used elsewhere, and retain the
chkCh/QueryChunk query-chunk subtest setup; in
pkg/executor/importer/table_import_testkit_test.go range 27-38, keep both mysql
and pmodel imports, removing the obsolete QueryRow branches and all conflict
markers.

---

Nitpick comments:
In `@pkg/executor/importer/chunk_process.go`:
- Around line 149-155: Rename queryRowEncodeReader to a chunk-oriented name that
matches queryChunkEncodeReader and its QueryChunk channel input, and update
every reference to the function accordingly. Preserve its wrapper behavior and
return signature unchanged.

In `@pkg/executor/importer/table_import.go`:
- Around line 634-637: Update the exported SetSelectedChunkCh method’s doc
comment to describe that it configures the channel for receiving QueryChunk
batches, replacing the stale reference to individual selected rows while
preserving the setter implementation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 06b513a3-ef5a-4ea1-bc16-9e46c2f4a1ef

📥 Commits

Reviewing files that changed from the base of the PR and between dd4ea3b and 3a0e13d.

📒 Files selected for processing (7)
  • pkg/executor/import_into.go
  • pkg/executor/importer/BUILD.bazel
  • pkg/executor/importer/chunk_process.go
  • pkg/executor/importer/engine_process.go
  • pkg/executor/importer/importer_testkit_test.go
  • pkg/executor/importer/table_import.go
  • pkg/executor/importer/table_import_testkit_test.go

Comment on lines +138 to +147
row := r.currChk.Chk.GetRow(r.cursor)
r.cursor++
data = rowToEncode{
row: row.GetDatumRow(r.currChk.Fields),
rowID: r.currChk.RowIDOffset + int64(r.cursor),
endOffset: -1,
resetFn: func() {},
}
return
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Set startPos explicitly for query-sourced rows.

The previous implementation set startPos: -1 to mark that query-sourced rows have no file offset. This construction omits startPos, so it defaults to 0. data.startPos feeds into the ErrEncodeKV error message in encodeLoop, so an encode failure on a query-sourced row will report offset 0 instead of indicating "not applicable." Restore the -1 sentinel to avoid misleading diagnostics.

Add a short comment on the rowID computation too: RowIDOffset + int64(r.cursor) relies on r.cursor already being incremented to a 1-based count within the chunk. This is easy to misread as an off-by-one error without a note.

🔧 Proposed fix
 	row := r.currChk.Chk.GetRow(r.cursor)
 	r.cursor++
+	// r.cursor is now the 1-based count of rows consumed from this chunk;
+	// RowIDOffset holds the cumulative row count before this chunk, so their
+	// sum reproduces the previous 1-based QueryRow.ID scheme.
 	data = rowToEncode{
 		row:       row.GetDatumRow(r.currChk.Fields),
 		rowID:     r.currChk.RowIDOffset + int64(r.cursor),
 		endOffset: -1,
+		startPos:  -1,
 		resetFn:   func() {},
 	}
 	return
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
row := r.currChk.Chk.GetRow(r.cursor)
r.cursor++
data = rowToEncode{
row: row.GetDatumRow(r.currChk.Fields),
rowID: r.currChk.RowIDOffset + int64(r.cursor),
endOffset: -1,
resetFn: func() {},
}
return
}
row := r.currChk.Chk.GetRow(r.cursor)
r.cursor++
// r.cursor is now the 1-based count of rows consumed from this chunk;
// RowIDOffset holds the cumulative row count before this chunk, so their
// sum reproduces the previous 1-based QueryRow.ID scheme.
data = rowToEncode{
row: row.GetDatumRow(r.currChk.Fields),
rowID: r.currChk.RowIDOffset + int64(r.cursor),
endOffset: -1,
startPos: -1,
resetFn: func() {},
}
return
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/executor/importer/chunk_process.go` around lines 138 - 147, Update the
rowToEncode construction in the query-row path to set startPos explicitly to the
-1 sentinel, preserving “not applicable” diagnostics for encode failures. Add a
brief comment beside the rowID expression in this block explaining that r.cursor
is incremented first and therefore represents the 1-based position within the
chunk.

@ti-chi-bot

Copy link
Copy Markdown
Member Author

Cherry-pick conflicts appear resolved; removing the do-not-merge/hold label.

@ti-chi-bot ti-chi-bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 3, 2026

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (1)
pkg/executor/importer/chunk_process.go (1)

137-143: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Rename the row-based reader wrapper.

queryRowEncodeReader consumes QueryChunk values and wraps queryChunkEncodeReader. Rename it to queryChunkEncodeReaderFn, and update the call at Line 558. This makes the chunk-based contract clear. (raw.githubusercontent.com)

As per coding guidelines, Go code SHOULD be self-documenting through clear naming and structure.

Proposed rename
-// queryRowEncodeReader wraps a queryChunkEncodeReader as an encodeReaderFn.
-func queryRowEncodeReader(chunkCh <-chan QueryChunk) encodeReaderFn {
+// queryChunkEncodeReaderFn wraps a queryChunkEncodeReader as an encodeReaderFn.
+func queryChunkEncodeReaderFn(chunkCh <-chan QueryChunk) encodeReaderFn {
-			queryRowEncodeReader(chunkCh),
+			queryChunkEncodeReaderFn(chunkCh),

Also applies to: 558-558

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/executor/importer/chunk_process.go` around lines 137 - 143, Rename the
wrapper function queryRowEncodeReader to queryChunkEncodeReaderFn and update its
call site near the referenced execution path, preserving the existing reader
construction and readRow behavior.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@pkg/executor/importer/chunk_process.go`:
- Around line 137-143: Rename the wrapper function queryRowEncodeReader to
queryChunkEncodeReaderFn and update its call site near the referenced execution
path, preserving the existing reader construction and readRow behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 56ee0d1c-a8cc-4ce3-907d-a3841974e614

📥 Commits

Reviewing files that changed from the base of the PR and between 3a0e13d and 1ba7bab.

📒 Files selected for processing (3)
  • pkg/executor/importer/chunk_process.go
  • pkg/executor/importer/importer_testkit_test.go
  • pkg/executor/importer/table_import_testkit_test.go
💤 Files with no reviewable changes (2)
  • pkg/executor/importer/importer_testkit_test.go
  • pkg/executor/importer/table_import_testkit_test.go

@codecov

codecov Bot commented Aug 3, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.59459% with 2 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (release-8.5@dd4ea3b). Learn more about missing BASE report.

Additional details and impacted files
@@               Coverage Diff                @@
##             release-8.5     #70287   +/-   ##
================================================
  Coverage               ?   55.1575%           
================================================
  Files                  ?       1849           
  Lines                  ?     666418           
  Branches               ?          0           
================================================
  Hits                   ?     367580           
  Misses                 ?     271413           
  Partials               ?      27425           
Flag Coverage Δ
integration 38.2605% <94.5945%> (?)
unit 65.1533% <0.0000%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
dumpling 55.3108% <0.0000%> (?)
parser ∅ <0.0000%> (?)
br 54.9088% <0.0000%> (?)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

This branch has not been deployed

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

Labels

do-not-merge/cherry-pick-not-approved release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. type/cherry-pick-for-release-8.5 This PR is cherry-picked to release-8.5 from a source PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants