Project

General

Profile

Actions

Bug #69084

closed

Epic #68397: Make TYPO3 work with MySQL strict mode

Adding Objects with NOT NULL columns is broken

Added by Morton Jonuschat over 9 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Must have
Category:
Extbase
Target version:
Start date:
2015-08-15
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
7
PHP Version:
5.6
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Using the Blog example from the functional tests it is easy to reproduce with a database that is strict about NOT NULL values (MySQL in strict mode, PostgreSQL and probably any other database that actually cares about data).

When adding a new Blog object the persistence layer tries to first create a new record just consisting of the following fields: crdate,tstamp,pid,sys_language_uid
As there are NOT NULL columns without default values in the table definition of the blog database this leads to constraint validation errors.

MySQL (strict mode) reports: Field 'description' doesn't have a default value
PostgreSQL reports: ERROR: null value in column "description" violates not-null constraint

This seems to originate in \TYPO3\CMS\Extbase\Persistence\Generic\Backend::persistObjects where new objects are treated specially by calling \TYPO3\CMS\Extbase\Persistence\Generic\Backend::insertObject which does not seem to map any of the object properties into the record to be created.

How to reproduce:

1. Add the following line to typo3/sysext/core/Build/Configuration/FunctionalTestsConfiguration.php: 'setDBinit' => 'SET SESSION sql_mode = \'STRICT_ALL_TABLES\';',
2. Run the following functional test: typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php

It will fail with SqlErrorException: Field 'description' doesn't have a default value


Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Bug #69085: transOrigDiffSourceField ignored by DatamapperClosedMorton Jonuschat2015-08-15

Actions
Related to TYPO3 Core - Bug #69247: Inserting records fails when the model has a incompatible default valueClosedMorton Jonuschat2015-08-21

Actions
Actions #1

Updated by Morton Jonuschat over 9 years ago

  • Status changed from New to In Progress
  • Assignee set to Morton Jonuschat
  • Parent task set to #68
Actions #2

Updated by Morton Jonuschat over 9 years ago

  • Parent task changed from #68 to #68397
Actions #3

Updated by Gerrit Code Review over 9 years ago

  • Status changed from In Progress to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/42656

Actions #4

Updated by Gerrit Code Review over 9 years ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/42656

Actions #5

Updated by Morton Jonuschat over 9 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #6

Updated by Riccardo De Contardi about 7 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF