Project

General

Profile

Actions

Task #83414

closed

Investigate MariaDB 10.2-support for 8 LTS

Added by Stefan Neufeind over 6 years ago. Updated over 3 years ago.

Status:
Rejected
Priority:
Should have
Assignee:
-
Category:
Database API (Doctrine DBAL)
Target version:
-
Start date:
2017-12-22
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
Sprint Focus:

Description

7.6 LTS together with MariaDB 10.2 gave for me:

„MariaDB version too high

Your MariaDB version 10.2.9-MariaDB is too new. TYPO3 CMS does not run with this version.“

Still trying it out :-) the first thing that failed were with creation of new tt_content-records:

2: SQL error: 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'recursive,menu_type,list_type,target,sectionIndex,accessibility_title,accessibil' at line 1'

Maybe there is some possibility to tune SQL-commands in 7.6 LTS to still be compatible with MariaDB 10.2? Maybe Maria shows unclean SQL-statements which worked with earlier versions but were unclean?


Files


Related issues 4 (0 open4 closed)

Related to TYPO3 Core - Bug #81341: recursive is a reserved keyword in MariaDB 10.2. Causes errors in queries for tt_content...ClosedMorton Jonuschat2017-05-25

Actions
Related to TYPO3 Core - Task #83478: Raise doctrine/dbal-versionClosed2018-01-05

Actions
Related to TYPO3 Core - Task #84744: Raise doctrine/dbal-versionClosed2018-04-16

Actions
Related to TYPO3 Core - Bug #87323: PHP 7.0 reached End Of Life, newer Doctrine and MariaDB 10.2/10.3 Support should be possibleRejected2019-01-03

Actions
Actions #1

Updated by Georg Ringer over 6 years ago

  • Related to Bug #81341: recursive is a reserved keyword in MariaDB 10.2. Causes errors in queries for tt_content... added
Actions #2

Updated by Georg Ringer over 6 years ago

see #81341 for the original issue. as this is deep into doctrine DBAL (https://github.com/doctrine/dbal/pull/2825) and those fix it only upstream I don't see any way to make it work in TYPO3. therefore I would propose to close this issue.

Actions #3

Updated by Stefan Neufeind over 6 years ago

  • Subject changed from Investigate MariaDB 10.2-support for 7.6 LTS to Investigate MariaDB 10.2-support for 8 LTS
  • TYPO3 Version changed from 7 to 8

Discussed with Benni. We might potentially want to have a fix for 8 LTS (as well as master). I've contacted Luís Cobucci about the patch that landed in Doctrine master and his view on the situation. Let's see if there might be a Doctrine-release including that patch for the 2.6-branch or even 2.5 maybe.

Meanwhile I've updated this issue to 8 LTS.

Actions #4

Updated by Stefan Neufeind over 6 years ago

The fixes in doctrine/dbal (master) will be released with dbal 2.7.0 then. But since 2.6.0 they have a minimum php-requirement for 7.1, so that's not an option for us on TYPO3 8 LTS. I expect we'll have that for TYPO3 9 maybe (#83478).

So I see this forge-issue as a call for solution for 8 LTS only. Raising the dbal-version is not an option. Either we'd need to backport a patch ourselves and ship a patched dbal (potentially patching "cleanly" via composer?), find a different solution or finally decide we won't have MariaDB 10.2-support for 8 LTS.

Actions #5

Updated by Stefan Neufeind over 6 years ago

  • Related to Task #83478: Raise doctrine/dbal-version added
Actions #6

Updated by Georg Ringer over 6 years ago

I really would like to avoid patching 3rd party code because what happens if there are security issues in doctrine/dbal ... we would need to take care about those as well then.

Regarding PHP 7.1. As PHP 7.0 is EOL Dec2018, I see the best solution to ask users to install TYPO3 with composer and PHP 7.1 and everything is fine and we don't need anything from our side.

Actions #7

Updated by Steffen Kamper over 6 years ago

i fixed that locally for v7 very easy, as we have this old DB class, so inside INSERTquery i added following:

      // Build query
        $keys = array_keys($fields_values);
        foreach ($keys as $id => $key) {
            $keys[$id] = '`' . $key . '`';
        }
        $query = 'INSERT INTO ' . $table . ' (' . implode(',', array_values($keys)) . ') VALUES ' . '(' . implode(',', $fields_values) . ')';
Actions #8

Updated by Oliver Hader over 6 years ago

  • Category changed from DataHandler aka TCEmain to Database API (Doctrine DBAL)
Actions #9

Updated by Stefan Neufeind about 6 years ago

  • Status changed from New to Rejected

Not viable for 7 LTS, not easy to resolve / didn't find consensous yet for 8 LTS. But 9 LTS has a newer dbal already.
So I'm closing this for 7 LTS/8 LTS, sorry.

Sidenote: Issue for another raise of the dbal-version on master (on the road to 9 LTS): #84744

Actions #10

Updated by Stefan Neufeind about 6 years ago

  • Related to Task #84744: Raise doctrine/dbal-version added
Actions #11

Updated by Oliver Hader over 5 years ago

  • Related to Bug #87323: PHP 7.0 reached End Of Life, newer Doctrine and MariaDB 10.2/10.3 Support should be possible added
Actions #12

Updated by Rico Leuthold about 5 years ago

Steffen Kamper wrote:

i fixed that locally for v7 very easy, as we have this old DB class, so inside INSERTquery i added following:

[...]

Hi Steffen - where exactly would I add / change that in v7?

Actions #13

Updated by Andy no-lastname-given about 5 years ago

Rico Leuthold wrote:

Steffen Kamper wrote:

i fixed that locally for v7 very easy, as we have this old DB class, so inside INSERTquery i added following:

[...]

Hi Steffen - where exactly would I add / change that in v7?

Hi Rico - search for:

// Build query

$query = 'INSERT INTO ' . $table . ' (' . implode(',', array_keys($fields_values)) . ') VALUES ' . '(' . implode(',', $fields_values) . ')';

in: typo3/sysext/core/Classes/Database/DatabaseConnection.php

and replace it like this:

           // Build query

                   $keys = array_keys($fields_values);
                foreach ($keys as $id => $key) {
                    $keys[$id] = '`' . $key . '`';
                   }
                   $query = 'INSERT INTO ' . $table . ' (' . implode(',', array_values($keys)) . ') VALUES ' . '(' . implode(',', $fields_values) . ')';

Actions

Also available in: Atom PDF