Skip to content

[TASK] Bulk insert functional test data sets - #744

Merged
sbuerk merged 1 commit into
TYPO3:mainfrom
wouter90:bulk-functional-dataset-imports
Sep 4, 2026
Merged

sbuerk merged 1 commit into
TYPO3:mainfrom
wouter90:bulk-functional-dataset-imports

Conversation

@wouter90

Copy link
Copy Markdown
Contributor

Functional CSV data sets currently execute one INSERT statement for every row. Large fixtures therefore spend most of their setup time on database round trips.

Resolve column types once per table, keep the required JSON conversion, and pass all rows to Connection::bulkInsert(). The connection automatically splits statements at the platform parameter limit, while empty data sets and sequence resets retain their existing behavior.

For the 743-row RootlineUtility fixture, this reduces runtime by 28% on PostgreSQL, 48% on SQLite, and 80% on MariaDB.

Functional CSV data sets currently execute one INSERT statement for every row. Large fixtures therefore spend most of their setup time on database round trips.

Resolve column types once per table, keep the required JSON conversion, and pass all rows to Connection::bulkInsert(). The connection automatically splits statements at the platform parameter limit, while empty data sets and sequence resets retain their existing behavior.

For the 743-row RootlineUtility fixture, this reduces runtime by 28% on PostgreSQL, 48% on SQLite, and 80% on MariaDB.
@sbuerk
sbuerk force-pushed the bulk-functional-dataset-imports branch from 21fdf22 to 200528c Compare September 4, 2026 10:54
@sbuerk
sbuerk merged commit 9ee3544 into TYPO3:main Sep 4, 2026
4 checks passed
reviewtypo3org pushed a commit to TYPO3/typo3 that referenced this pull request Sep 16, 2026
This update includes performance improvements for
MySQL, MariaDB, PostgreSQL and SQLite.

TYPO3/testing-framework#754
TYPO3/testing-framework#745
TYPO3/testing-framework#744
TYPO3/testing-framework#743
TYPO3/testing-framework#742
TYPO3/testing-framework#741

For main the testing-framework is updated from its
`main` branch. The 14.3 backport raises it to `^9.7.0`,
which contains the same performance improvements. There
the constraint is raised for the composer based e2e
instance and the `typo3tests/dataset-import` test
package as well, which required `dev-main` so far.

Used command(s):

main:

> composer update typo3/testing-framework

14.3:

> composer require --dev "typo3/testing-framework:^9.7.0"

Resolves: #110717
Releases: main, 14.3
Change-Id: I2888587cd53acfc3e505ae4a1c643c218380d9c7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/95346
Tested-by: core-ci <typo3@b13.com>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Simon Schaufelberger <simonschaufi+typo3@gmail.com>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Simon Schaufelberger <simonschaufi+typo3@gmail.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
reviewtypo3org pushed a commit to TYPO3/typo3 that referenced this pull request Sep 16, 2026
This update includes performance improvements for
MySQL, MariaDB, PostgreSQL and SQLite.

TYPO3/testing-framework#754
TYPO3/testing-framework#745
TYPO3/testing-framework#744
TYPO3/testing-framework#743
TYPO3/testing-framework#742
TYPO3/testing-framework#741

For main the testing-framework is updated from its
`main` branch. The 14.3 backport raises it to `^9.7.0`,
which contains the same performance improvements. There
the constraint is raised for the composer based e2e
instance and the `typo3tests/dataset-import` test
package as well, which required `dev-main` so far.

Used command(s):

main:

> composer update typo3/testing-framework

14.3:

> composer require --dev "typo3/testing-framework:^9.7.0"

Resolves: #110717
Releases: main, 14.3
Change-Id: I2888587cd53acfc3e505ae4a1c643c218380d9c7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/95883
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Stefan Bürk <stefan@buerk.tech>
TYPO3IncTeam pushed a commit to TYPO3-CMS/core that referenced this pull request Sep 16, 2026
This update includes performance improvements for
MySQL, MariaDB, PostgreSQL and SQLite.

TYPO3/testing-framework#754
TYPO3/testing-framework#745
TYPO3/testing-framework#744
TYPO3/testing-framework#743
TYPO3/testing-framework#742
TYPO3/testing-framework#741

For main the testing-framework is updated from its
`main` branch. The 14.3 backport raises it to `^9.7.0`,
which contains the same performance improvements. There
the constraint is raised for the composer based e2e
instance and the `typo3tests/dataset-import` test
package as well, which required `dev-main` so far.

Used command(s):

main:

> composer update typo3/testing-framework

14.3:

> composer require --dev "typo3/testing-framework:^9.7.0"

Resolves: #110717
Releases: main, 14.3
Change-Id: I2888587cd53acfc3e505ae4a1c643c218380d9c7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/95346
Tested-by: core-ci <typo3@b13.com>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Simon Schaufelberger <simonschaufi+typo3@gmail.com>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Simon Schaufelberger <simonschaufi+typo3@gmail.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
TYPO3IncTeam pushed a commit to TYPO3-CMS/core that referenced this pull request Sep 16, 2026
This update includes performance improvements for
MySQL, MariaDB, PostgreSQL and SQLite.

TYPO3/testing-framework#754
TYPO3/testing-framework#745
TYPO3/testing-framework#744
TYPO3/testing-framework#743
TYPO3/testing-framework#742
TYPO3/testing-framework#741

For main the testing-framework is updated from its
`main` branch. The 14.3 backport raises it to `^9.7.0`,
which contains the same performance improvements. There
the constraint is raised for the composer based e2e
instance and the `typo3tests/dataset-import` test
package as well, which required `dev-main` so far.

Used command(s):

main:

> composer update typo3/testing-framework

14.3:

> composer require --dev "typo3/testing-framework:^9.7.0"

Resolves: #110717
Releases: main, 14.3
Change-Id: I2888587cd53acfc3e505ae4a1c643c218380d9c7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/95883
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Stefan Bürk <stefan@buerk.tech>
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